1. 程式人生 > 其它 >(已解決)com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Client does not support authent

(已解決)com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Client does not support authent

技術標籤:webMySQL資料庫mysqljavasql後端

異常: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、問題解決,重新執行即可