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';
看到MySQL8.0的默认密码加密方式为:caching_sha2_password
,而Navicat Premium11是不支持这种加密方式的。
2、查看登录用户的加密方式
select host,user,plugin from mysql.user;
这里看到的是你的登录用户的密码加密方式,我已经修改完毕,如果没有修改前的话,加密方式是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,再次尝试,登录成功。
你可能想看: