1、從docker中獲取mysql8.0.13鏡像 2、運行 mysql8.0.13 鏡像 3、登陸mysql 4、解決方法:進入mysql8.0.13容器 5、在容器裡面登陸資料庫 6、進入mysql庫,查看user表,可以看到root加密方式 7、修改root用戶插件驗證方式: 8、刷新許可權 9 ...
1、從docker中獲取mysql8.0.13鏡像
docker pull mysql:8.0.13
通過 docker images 命令查看鏡像是否獲取到了
2、運行 mysql8.0.13 鏡像
docker run --name mysql8013 -p 8323:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.13
通過 docker ps 命令查看鏡像是否啟動成功
3、登陸mysql
mysql -uroot -proot -D mysql8013
發現登陸不上去,因為mysql8之後root用戶的密碼驗證方式變了。root的用戶的加密方式為caching_sha2_passoword,而navicat連接所用的方式為native_password。
4、解決方法:進入mysql8.0.13容器
docker exec -it mysql8013 /bin/bash
5、在容器裡面登陸資料庫
mysql -uroot -proot
mysql為遠程連接和本地連接提供了不同的密碼驗證方式。所以在容器里可以登陸。
6、進入mysql庫,查看user表,可以看到root加密方式
use mysql; select host, user, plugin from user \G
7、修改root用戶插件驗證方式:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
8、刷新許可權
flush privileges;
9、然後退出mysql
exit;
10、給mysql8013安裝vim編輯器
apt-get update && apt-get install vim -y
11、安裝vim完成後,修改資料庫編碼
進入mysql.cnf vim /etc/mysql/conf.d/mysql.cnf 增加以下內容,然後保存退出 [client] default-character-set=utf8 [mysql] default-character-set=utf8
12、查看mysql編碼
show variables like'character%'; -- 如果編碼沒變,可能要重啟這個mysql容器
13、退出 mysql8013容器
Ctrl+D
14、查看mysql8013數據捲掛載位置:
docker inspect mysql8013
然後觀察 "Mounts"對應的值,其中 "Source" 對應的值就是本機的掛載路徑。
15、通過 navicat 測試連接。