异常:com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException:Client does not support authentication protocol requested by server;consider upgrading MySQL client
问题原因
mysql8 以前的版本加密规则是mysql_native_password,而mysql8之后,加密规则是caching_sha2_password。
在数据库连接的时候加密规则出现不适配。navicat登录数据库,连接时也可能会出现同样的问题。
解决方法
1、首先在数据库查询一下自己的MySQL版本
SELECT @@VERSION;
运行结果如下:
2、查询自己的加密规则
SELECT user,host,plugin from mysql.user
可以看到此时的加密规则为:
3、把用户密码登录的加密规则还原成mysql_native_password这种加密方式
alter user 'root'@'localhost' identified with mysql_native_password by 'password';//password是你自己的密码
flush privileges;#刷新权限,使自己的修改生效
再次查询以后可以看到更改后的加密方式为:
4、问题解决,重新运行即可