开门见山,请看描述
报错原因:navicat版本的问题导致连接失败。
mysql8 之前的版本中加密规则是:mysql_native_password
mysql8之后,加密规则是caching_sha2_password
解决方案:
①升级navicat,使其跟mysql8版本规则一致(这里不做讲解)
②把用户密码登录的加密规则还原成mysql_native_password
方法②步骤如下:
1、进入数据库
mysql -uroot -p
2、使用mysql数据库:
use mysql;
3、查询user为root的host
select user,host,plugin from user where user='root';
4、执行永不过期策略
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
注:这里的localhost是通过第三步host查出来的结果
5、把加密方式修改为mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
6、刷新权限使其生效
flush privileges;
7、最后再查看加密方式是否生效
select user,host,plugin from user where user='root';
重新连接发现成功!!!