前提:
異常:
docker 安裝 mysql 8 外部連接會報一下異常: Authentication plugin 'caching_sha2_password' cannot be loaded
原因
出現這個原因是mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password, 解決問題方法有兩種,一種是升級navicat驅動,一種是把mysql用戶登錄密碼加密規則還原成mysql_native_password.
安裝環境:
centos7
Docker version 1.13.1
安裝步驟:
1.拉取鏡像,不帶版本號,默認拉取最高版本: docker pull mysql
2.查看鏡像:docker images
3.啟動鏡像 做端口映射 3306到外網,不然連接不上:docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
4.查看運行中的容器,看是否啟動成功:
5.外部連接報錯:
解決方法
1.進入docker容器 :docker exec -it c4bf367b7155 bash
2.登陸數據庫 : mysql -uroot -p{密碼}。 借鑒 :https://blog.csdn.net/u014527619/article/details/80509671 不成功 。
以這種方式登陸(成功) :
1. mysql -uroot -p 。回車
2.輸入密碼
3.修改數據庫
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
4.重新修改密碼后可連接成功
mysql> alter user 'root'@'%' identified by '123456';
5.刷新數據庫
mysql> flush privileges;
6.重新外網登陸ok
文章借鑒:https://blog.csdn.net/u014527619/article/details/80509671