docker安裝mysql最新版,開啓遠程訪問

開啓遠程訪問

8.0之前開啓遠程訪問

grant all privileges on *.* to 'root'@'%' identified by '你的密碼' with grant option 

8.0之後

CREATE USER 'root'@'%' IDENTIFIED BY '你的密碼'; 
GRANT ALL ON *.* TO 'root'@'%'; 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密碼';
FLUSH PRIVILEGES;

mysql 安裝

https://www.cnblogs.com/telwanggs/p/10776832.html

pull下來 mysql

docker search mysql
docker pull mysql

改變目錄權限,非必須
可以先執行第四步,到第五步時發現容器的狀態時是Exited時,執行第六步來查看原因。
如果提示無權限訪問時,則需要補上本步驟,這是因爲開啓SELinux enabled時權限控制更嚴格所導致
chcon -Rt svirt_sandbox_file_t /data/mysql

運行

docker run -d --name myMysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql
 -d 表示在後臺運行容器
 --name 表示爲後臺運行的容器取別名,便於後續的操作
 -v 用來指定數據卷,將正在運行mysql的容器上的/var/lib/mysql目錄映射到宿主機上的/data/mysql目錄

查看容器的運行狀態

docker psdocker ps -a

CONTAINER ID   #容器ID
IMAGE          #鏡像名稱
COMMAND        #執行的cmd
CREATED        #創建了多久        
STATUS         #容器的status:Up(正在運行) or Exited(不在運行)      
PORTS          #端口映射情況,默認tcp           
NAMES          #容器別名

查看容器的運行日誌

docker logs myMysql

與容器進行交互

docker exec -t -i myMysql /bin/bash
# 執行之後會獲得容器內的/bin/bash終端,
root@35e1fab30962:/#,其中35e1fab30962是容器ID
#此時就可以在這裏執行mysql命令了
mysql -uroot -p
use mysql;
select * from user\G;
docker stop myMysql
docker start myMysql


# mysql容器的數據導出
docker exec myMysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql

docker --help 或 docker cmd --help
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章