安装了mysql8.4,使用navicat无法连接,报错:Plugin caching_sha2_password could not be loaded:乱码,该问题的解决流程如下:
原因
MySQL8之前的版本中加密规则是mysql_native_password,而在MySQL8之后,加密规则是caching_sha2_password,解决问题方法有两种,第一种是升级图形界面工具版本,第二种是把MySQL8用户登录密码加密规则还原成mysql_native_password,幸运的是8.4版本有mysql_native_password,只是没有激活而已,在MySQL9以后的版本mysql_native_password被删除了。
解决流程
使用MySQL的root账号登录,并切换到mysql数据库,修改配置:
mysql -u root -p
# 输入密码 123456abc
mysql> use mysql;
mysql> select user,host from user;
mysql> update user set host='%' where user='root';
mysql> commit;
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456abc';
mysql> flush privileges;
#查询mysql插件信息
show show plugins;
在my.ini文件中加入该插件启动命令,在[mysqld]段添加mysql_native_password=ON
重启MySQL服务。然后登录mysql再show plugins;可以看到mysql_native_password是ACTIVE状态
#使用mysql数据库
USE mysql;
#修改'root'@'localhost'用户的密码规则和密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456abc';
#刷新权限
FLUSH PRIVILEGES;
此时命令都可以正常执行,navicat可以正常使用。