docker 安裝mysql

經過命令: docker search mysql 搜索mysql,能夠發現標記的那兩個是官方的mysql

 

也能夠在https://hub.docker.com上搜索mysqlsql

網站上面搜索的會有不少配置提示,docker

 

 

 

右邊顯示的是pull命令:數據庫

 

輸入命令: docker pull mysql/mysql-server bash

 

也能夠直接 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

注意,你直接這樣複製命令是不行的,由於回車
解決方法:spa

1:不回車,變成一行3d

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

相關文章
相關標籤/搜索