前言
使用Navicat连接mysql时出现错误:

问题原因
MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。
解决办法
1.进入mysql客户端
mysql -u你的用户名 -p你的密码

2.查看mysql加密方式
show variables like 'default_authentication_plugin';

3.查看本地mysql用户的信息
select host,user,plugin from mysql.user;

4.查看本地mysql用户的信息
Navicat不支持MySQL新版本的这种用户登录账户加密方式plugin,所以下面我们要修改root账户的加密方式为【mysql_native_password】
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
我这里的’root’@'%'是我为了远程访问的时候方便设置的,你要按照你自己的host名写。

5.重新使用navicat连接mysql

总结
遇到问题多问问百度,总结经验
当使用Navicat尝试连接MySQL8及以上版本时,由于默认加密方式【caching_sha2_password】不被Navicat支持,会出现错误。解决方法包括:通过mysql客户端更改用户登录账户加密方式为【mysql_native_password】。首先,登录mysql,查看当前加密方式,然后查询用户信息,接着修改root账户的加密方式,最后重新用Navicat尝试连接。
2951





