1. 程式人生 > 資料庫 >navicat for mysql 連結時報錯:1251-Client does not support authentication protocol requested by server

navicat for mysql 連結時報錯:1251-Client does not support authentication protocol requested by server

 

 

客戶端使用navicat for mysql。本地安裝了mysql 8.0.18。但是在連結的時候提示:

 

 主要原因是mysql伺服器要求的認證外掛版本與客戶端不一致造成的。

mysql8.0以後的使用的plugin是caching_sha2_password,必須使用支援此外掛的客戶端版本。

plugin的作用之一就是處理後的密碼格式和長度是不一樣的,類似於使用MD5加密和使用base64加密一樣對於同一個密碼處理後的格式是不一樣的。

解決方法是將root的plugin改成mysql_native_password。相當於降了一級。

1、登入資料庫 mysql -u root -p

2、檢視使用者資訊

select host,user,plugin,authentication_string from mysql.user;

 

host為 % 表示不限制ip; localhost表示本機使用 ; plugin非mysql_native_password 則需要修改密碼

3、修改使用者密碼

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你設定的密碼'; 

更新使用者的密碼 root使用者密碼為newpassword或者改成其他密碼都可以

注意#:可能會報錯ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@’%’,需要注意你上圖列表中 user 項中的 root 是% 還是localhost; 如果是localhost則將上述語句改成ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你設定的密碼';

配置成功!!!!!