1、安裝mysql 5.7鏡像
執行命令:docker pull mysql:5.7
2、創建mysql容器
2-1、創建目錄 /mysql/data /mysql/logs /mysql/conf,在/mysql/conf目錄下創建文件my.cnf
mkdir -p /mysql/data /mysql/logs /mysql/conf cd /mysql/conf touch my.cnf
2-2、創建容器,將數據,日志,配置文件映射到本機
docker run -p 3306:3306 --name mysql\
-v /mysql/conf:/etc/mysql/conf.d\
-v /mysql/logs:/logs \
-v /mysql/data:/var/lib/mysql\
-e MYSQL_ROOT_PASSWORD=123456\
-d mysql:5.7
-p:表示端口映射,冒號左面的是我們的宿主機的端口,也就是我們虛擬機的端口,而右側則表示的是mysql容器內的端口
--name:是我們給mysql容器取的名字

查看mysql容器運行狀態:docker ps
進入mysql容器內:docker exec -it mysql /bin/bash
執行命令:mysql -u root -p 進入mysql
檢查是否給root用戶授權了遠程訪問
use mysql;
select User,authentication_string,Host from user;
查詢結果如下:
看user為root,host為%數據,我這里是已經開啟了遠程訪問,如果沒有的話,可以進行以下操作
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
這里的123456為你給新增權限用戶設置的密碼,%代表所有主機,也可以具體到你的主機ip地址
2.flush privileges;
這一步一定要做,不然無法成功! 這句表示從mysql數據庫的grant表中重新加載權限數據
因為MySQL把權限都放在了cache中,所以在做完更改后需要重新加載。