在使用比較新版本的 MySQL 時,明明輸入了正確的密碼還是出現 1251 Error 錯誤訊息如下:
Client does not support authentication protocol requested by server. Consider upgrading MySQL client
每次遇到這個問題總是要 Google 一次太麻煩了,直接紀錄此問題的解決方式。
問題描述
使用 Navicat 客戶端連接本地 MySQL,報錯:1251 - Client does not support authentication protocol requested by server. Consider upgrading MySQL client。
問題的主要原因是因為 MySQL 8 之前的版本中,加密規則是 mysql_native_password
,而在 MySQL 8 之後,加密規則是 caching_sha2_password
,加密算法變了,有些 Client 工具沒有更新而導致。
解決方式
解決方式有兩種:
- 升級 navicat 驅動。
- 把 MySQL 使用者登入的密碼加密規則還原成
mysql_native_password
。
這邊採用第 2 種方法解決,具體操作步驟如下:
- 打開命令列 Terminal,進入 MySQL 的
bin
目錄,輸入如下登入 MySQL:
|
|
- 執行 SQL 查詢使用者資訊:
|
|
備註:host 為
%
表示不限制 IP;localhost
表示本機使用;plugin 非mysql_native_password
則需要修改密碼。
- 修改密碼:
在命令行輸入如下命令,修改密碼。
|
|
或者:
|
|
- 再次查詢使用者資訊:
- 重新使用 Navicat 連接 MySQL,連接成功。