连接Docker容器的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loade

1.报错描述
使用navicat连接工具,连接报错如下:
连接Docker容器的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loade
2.报错原因说明
由于新版本的MySQL新特性导致的,通过查询mysql

mysql> select Host,User,plugin from mysql.user;

连接Docker容器的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loade
查询结果如上,在老版本里,一般使用加密方式为mysql_native_password,因为认证方式改变导致的。

3.解决方案

1.进入容器

docker exec -it 容器名称 /bin/bash

2.登录数据库

mysql -u root -p
连接Docker容器的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loade

3.修改加密方式

执行命令,将用户的加密方式改为mysql_native_password,密码为root。执行命令flush privileges;使权限配置项立即生效。

alter user ‘root’@’%’ identified with mysql_native_password by ‘root’;
flush privileges;
连接Docker容器的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loade

4.结果
连接Docker容器的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loade