Navicat Premium 12连接MySQL数据库出现Authentication plugin 'caching_sha2_password' cannot be loaded

问题

在登陆自己的ECS的docker mysql时,本地的Navicat Premium客户端连接数据库时抛出Authentication plugin 'caching_sha2_password' cannot be loaded的异常,经过一通查资料,一顿操作猛如虎后,终于解决,在此记录一下。
环境:CentOS7
MySQL版本:8.0
部署方式:docker
客户端:Navicat Premium11

解决办法

1、查看默认的密码加密方式:

show variables like 'default_authentication_plugin';

Navicat Premium 12连接MySQL数据库出现Authentication plugin 'caching_sha2_password' cannot be loaded
看到MySQL8.0的默认密码加密方式为:caching_sha2_password,而Navicat Premium11是不支持这种加密方式的。

2、查看登录用户的加密方式

select host,user,plugin from mysql.user;

Navicat Premium 12连接MySQL数据库出现Authentication plugin 'caching_sha2_password' cannot be loaded
这里看到的是你的登录用户的密码加密方式,我已经修改完毕,如果没有修改前的话,加密方式是caching_sha2_password,所以,我们需要修改为mysql_native_password

3、修改加密方式
执行命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

注意: 这里的password,是你登录用户的密码。

修改加密方式:

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

刷新配置:

FLUSH PRIVILEGES;

需要额外注意的是,如果你使用root登录,请先查询用户列表,如果发现你的root用户是有两条记录的,那么需要把两个root用户的加密方式全部修改一下,否则仍会出现登录校验失败的情况。

执行完毕后,请再次查看用户的加密方式是否已经修改成功:

select host,user,plugin from mysql.user;

最后打开Navicat Premium11,再次尝试,登录成功。

你可能想看:
分享给朋友: