问题描述
安装了mysql8.4.1,使用sqlyog、navicat无法连接,报错:
Plugin caching_sha2_password could not be loaded:乱码
原因
出现这个原因是MySQL8之前的版本中加密规则是mysql_native_password
而在MySQL8之后,加密规则是caching_sha2_password
解决问题方法有两种
- 第一种是升级图形界面工具版本
- 第二种是把MySQL8用户登录密码加密规则还原成mysql_native_password
按照网上教程尝试第二种方式解决
登录mysql依次执行如下命令:
#使用mysql数据库 USE mysql; #修改'root'@'localhost'用户的密码规则和密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123'; #刷新权限 FLUSH PRIVILEGES;
新问题
按照如上方法操作到第二条命令的时候出现了报错:Plugin ‘msql_native_password‘ is not loaded.
#查询mysql插件信息 show show plugins;
结果发现
mysql_native_password 插件是DISABLED状态。
解决
1、在my.ini文件中加入该插件启动命令,在[mysqld]段添加mysql_native_password=ON。
2、重启MySQL服务。然后登录mysql再show plugins;可以看到mysql_native_password是ACTIVE状态
3、再次执行前面的命令,这里需要注意执行第二条命令之后root的密码会被修改成新的:abc123,根据自己的情况修改。
#使用mysql数据库 USE mysql; #修改'root'@'localhost'用户的密码规则和密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123'; #刷新权限 FLUSH PRIVILEGES;
此时命令都可以正常执行,使用sqlyog也可以登录了,完美解决。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。