MySQL 版本錯誤處理 (Client does not support authentication protocol requested by server)
阿新 • • 發佈:2019-01-08
MySQL-Front
linux_boot 我在用root帳戶連線mysql資料庫時提示有錯誤如下:1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 我的資料庫是可以用。但匿名帳戶卻可以連線
---------------------------------------------------------------
在更新到 4.1.17 版本的 MySQL 後,發現需要使用 MySQLi 擴充套件方能正常使用資料庫,否則會出現 1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 的提示,這個很納悶,我沒有研究具體的問題,只是切換到 MySQLi 擴充套件,其實在給 root 加上密碼前還是可以使用 MySQL 擴充套件的,可是給 root 加上密碼後就出現了上述客戶端版本太低的提示。
目前已知解決方法:
先用root登入MYSQL伺服器,執行
mysql>set password for [email protected]"localhost"=old_password('yourPassword');
原因是因為你使用的mysql伺服器版本中使用了新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函式被改為old_password();,這樣使用password()生成的密碼在舊的版本上的客戶端就不好使了,而PHP中的MYSQL客戶端都是3.23的(當然,mysqli的擴充套件除外),問題就在這了。
linux_boot 我在用root帳戶連線mysql資料庫時提示有錯誤如下:1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 我的資料庫是可以用。但匿名帳戶卻可以連線
---------------------------------------------------------------
在更新到 4.1.17 版本的 MySQL 後,發現需要使用 MySQLi 擴充套件方能正常使用資料庫,否則會出現 1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 的提示,這個很納悶,我沒有研究具體的問題,只是切換到 MySQLi 擴充套件,其實在給 root 加上密碼前還是可以使用 MySQL 擴充套件的,可是給 root 加上密碼後就出現了上述客戶端版本太低的提示。
目前已知解決方法:
先用root登入MYSQL伺服器,執行
mysql>set password for [email protected]"localhost"=old_password('yourPassword');
原因是因為你使用的mysql伺服器版本中使用了新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函式被改為old_password();,這樣使用password()生成的密碼在舊的版本上的客戶端就不好使了,而PHP中的MYSQL客戶端都是3.23的(當然,mysqli的擴充套件除外),問題就在這了。