“MySQL Server Error(1251)“的解決方法

雖然 MySQL 4.1.7 已經發佈並成為官方推薦版本,但是 4.0.x 系列並沒有停止更新和 bug 修復,其實現在服務器上的 MySQL 大多是 3.x 版本的,呵呵。

  在更新到 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 user1@”localhost”=old_password(yourPassword);

  原因是因為你使用的mysql服務器版本中使用瞭新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函數被改為old_password();,這樣使用password()生成的密碼在舊的版本上的客戶端就不好使瞭,而PHP中的MYSQL客戶端都是3.23的(當然,mysqli的擴展除外),問題就在這瞭。

  更新信息:ChangeLog

  下載:http://dev.mysql.com/downloads/mysql/4.0.html

本文鏈接:
http://www.openphp.cn/index.php?module=article&id=132

發佈留言