问题描述
在使用Navicat Premium 连接MySQL数据库时,会出现Authentication plugin 'caching_sha2_password' cannot be loaded
的错误。
出现原因
mysql 8之前的版本中加密规则都是mysql_native_password,而在mysql 8及其之后的版本中,加密规则变成了caching_sha2_password。老版本的navicat(本人只能找到旧版破解的navicat )和新版本的mysql无法匹配,导致报错。
解决办法
- 升级navicat驱动;
- 将mysql用户登录密码的加密规则还原成原来的mysql_native_password。
我选择使用第二种方式( 因为我的navicat是旧版破解版的,不敢升级,也懒得找新版破解的版本了)
步骤如下:
- 在终端登录MySQL。
mysql -u root -p
- 修改账户密码加密规则并更新用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的root密码' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的root密码';
- 刷新权限。
FLUSH PRIVILEGES;
执行命令截图如下:
完成之后,再次打开Navicat即可成功连接。