docker 安装mysql
通過命令:?docker search mysql 搜索mysql,可以發現標記的那兩個是官方的
?
也可以在https://hub.docker.com上搜索mysql
網站上面搜索的會有很多配置提示,
?
?
?
右邊顯示的是pull命令:
?
輸入命令:?docker pull mysql/mysql-server?
?
也可以直接 docker run 語法,因為當run的時候,docker發現本地沒有該鏡像,回去該網站上pull
?
最好在創建鏡像的時候就指定用戶名,密碼和字符集,語法:
docker run -d -p 3306:3306 -e MYSQL_USER="nsky" #新增用戶名 nsky -e MYSQL_PASSWORD="password" #nksy的密碼 -e MYSQL_ROOT_PASSWORD="password" #root的密碼 --name [Name] [ImageName] #容器名稱 鏡像名稱,就是說以哪個鏡像為基礎創建容器 --character-set-server=utf8 #字符集 --collation-server=utf8_general_ci #級別?
根據上面的語法,修改容器名稱和鏡像名稱
docker run -d -p 3306:3306 -e MYSQL_USER="nsky" -e MYSQL_PASSWORD="password" -e MYSQL_ROOT_PASSWORD="password" --name mysql01 mysql/mysql-server --character-set-server=utf8 --collation-server=utf8_general_ci注意,你直接這樣復制命令是不行的,因為回車
解決方法:
1:不回車,變成一行
2:在回車后面加入空格右斜杠? \
docker run -d -p 3306:3306 \ -e MYSQL_USER="nsky" \ -e MYSQL_PASSWORD="password" \ -e MYSQL_ROOT_PASSWORD="password" \ --name mysql01 mysql/mysql-server \ --character-set-server=utf8 \ --collation-server=utf8_general_ci
然后在命令工具里面粘貼,回車,創建成功
docker ps? 查看運行的容器,狀態顯示已經啟動
啟動中是這樣的:
?
進入容器:?docker exec -it mysql01 bash?
?
登錄mysql :?mysql -uroot -p?
使用數據庫:
?
查看用戶名:?select user,host from user;?
?
從可以看到root的host是localhost,說明只能通過localhost登陸,localhost以外的地方就不能連接了。用Navicat可以測試下
?
用nsky可以
?
?
我用nsky登陸的,沒有權限使用數據庫,用root登陸,給權限命令:?GRANT ALL PRIVILEGES ON *.* TO 'nsky'@'%' WITH GRANT OPTION;?
可以在創建用戶的時候,就讓他可以在外部連接:?CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';?
?
?
查看字符集:?show variables like '%char%';
?
查看當前的collation:?show variables like 'collation%';?
?
?
?
?
?
?
但容器一刪除,剛這些配置都沒有了,所以建議是數據卷volume ,掛載
后期建議用mount ,語法更簡單
其實就是容器的文件跟宿主機的一個綁定
?
退出mysql容器,輸入exit即可
語法:
#注意:需要先創建/docker/mysql/config/my.cnf文件和/docker/mysql/data文件夾
docker run -d -p 3306:3306 --name mysql01 -v=/docker/mysql/config/my.cnf:/etc/my.cnf -v=/docker/mysql/data:/var/lib/mysql mysql/mysql-server?
在chentos系統中,要區分是根目錄還是root目錄
這是root目錄,[root@localhost~]
?
這是根目錄 [root@localhost /]
?
如果是root目錄。那么:-v=/root/mysql/m.cnf
如果是根目錄,那么:-v=/mysql/m.cnf
?
?
my.cnf如下
[mysqld] user=mysql character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8?
確定后,進入容器,修改密碼
?
?修改密碼語句
mysql5.7版本語法:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
mysql5.7之后版本語法:
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'
?
可以通過命令:?docker inspect mysql02?
來看這個容器的一些參數和配置,比如我們配置的資料卷掛載
?
?
?
這樣刪除容器,在重新創建一個的話的,配置依然存在
當然,你創建容器的時候,-v后面的環境變量綁定必須之前的宿主機的路徑
參考:https://shimo.im/docs/anrlYMFEYloN52c8
?
轉載于:https://www.cnblogs.com/nsky/p/10413136.html
總結
以上是生活随笔為你收集整理的docker 安装mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pytorch的torch.cat实例
- 下一篇: 大数据学习——Storm集群搭建