Docker 搭建 mysql8 解决 Authentication plugin 'caching_sha2_password' cannot be loaded

从官网拉取最新mysql镜像

docker pull mysql


检查镜像拉取是否成功

docker images


创建容器

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql



-e TZ=Asia/Shanghai // 设置时区为上海,这条一定要加,不然你的 mysql 时间会差8小时

这里用客户端连接 mysql 出现一个错误 Authentication plugin 'caching_sha2_password' cannot be loaded

出现这个原因是 mysql8 之前的版本中加密规则是 mysql_native_password, 而在mysql8之后, 加密规则是 caching_sha2_password, 解决问题方法有两种

一种是升级 navicat 驱动

一种是把mysql用户登录密码加密规则还原成 mysql_native_password. 

进入容器内部

docker exec -it mysql bash


登陆 mysql

mysql -uroot -p123456


修改用户密码加密规则,正常连接(看了网上很多教程说要   FLUSH PRIVILEGES;   #刷新权限 ,但是我并没有遇到这种情况,记录一下)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456';

3454
0
3年前