1.拉取鏡像文件:
docker pull mysql:版本
2.可通過查看鏡像情況:
docker images
3.啓動執行mysql數據
docker run -p 3306:3306 --name 容器名稱 -e MYSQL_ROOT_PASSWORD=密碼 -d mysql:版本
-p設置端口 --name:指定容器名稱 -e:設置root密碼
4.檢查docker容器中mysql或者其它服務是否正常運行
docker container ls
如下:
5.通過mysql客戶端本機訪問
docker exec -it mysql bash
6.輸入用戶名密碼
mysql -u賬戶 -p密碼
注意:當出現一下異常
a.找到mysql配置文件my.cnf 中mysqld項下配置skip-grant-tables,重啓MySQL服務
b.通過docker進入mysql服務中執行此命令 mysqld -nt -skip-grant-tables,然重新輸入賬戶密碼即可登錄
c.由於mysqld –skip-grant-tables在mysql8.0中已失效,當版本未8.0時使用此命令:mysqld --console --skip-grant-tables --shared-memory
7.遠程訪問:
如果通過docker容器mysql客戶端可以訪問但遠程客戶端機器通過管理工具無法訪問排查如下原因
A.檢查服務器3306端口是否映射外網
B.檢查服務防火牆是否開啓如果開啓並且不能關閉情況可執行如下操作進行排查處理:
檢查防火牆狀態:systemctl status firewalld
開通3306端口:firewall-cmd --zone=public --add-port=3306/tcp -permanent
重新加載防火牆:firewall-cmd --reload
如果需要關閉防火牆:systemctl stop firewalld
C.設置賬戶遠程可以訪問
grant all privileges on *.* to root@'%' identified by "賬戶密碼";