1. 程式人生 > >nacicat連線mysql8及JDBC連線mysql8報錯解決

nacicat連線mysql8及JDBC連線mysql8報錯解決

最近換電腦安裝了mysql8,使用 nacicat連線發現報錯1251- Client does not support authentication protocol 錯誤

從網上百度到原來mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之後,加密規則是caching_sha2_password, 

解決問題方法有兩種:

方法1.升級navicat驅動;

方法2.把mysql使用者登入密碼加密規則還原成mysql_native_password. 

這裡採用方法2解決,具體操作步驟如下:

1.開啟命令列小黑屏,進入MySQL的bin目錄,然後輸入mysql -u root -p,輸入密碼

2.然後輸入

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下使用者的密碼 

FLUSH PRIVILEGES; #重新整理許可權

3.輸入修改的密碼,再次測試連線,發現連線成功

 

搭建完資料庫之後,更換專案中資料來源連線到本地資料庫進行時程式碼開發時又出現了錯誤,錯誤資訊如下

 

使用JDBC連線MySql時出現:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration 

更換URL為 

  1. jdbc:mysql://127.0.0.1:3306/你的資料庫名?useUnicode=true&characterEncoding
    =UTF-8&serverTimezone=UTC  

 

 執行時有報了一個Unknown system variable 'query_cache_size'的錯誤

這個比較簡單在maven中更新一下mysql-connector-java即可

如果不是使用的maven管理jar包,可自行根據你使用的jar包管理工具進行跟新jar包