在更新到 4.1.1x 版本的 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 user1@"localhost"=old_password('yourPassWord');
原因是因為你使用的MySQL服務器版本中使用了新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函數被改為old_password();,這樣使用passWord()生成的密碼在舊的版本上的客戶端就不好使了,而PHP中的MYSQL客戶端都是3.23的(當然,MySQLi的擴展除外),問題就在這了。
>>>更多專題請看MySQL開發 PHP與數據庫 數據庫相關文章專題