雖然 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
下載:html" target=_blank>http://dev.mysql.com/downloads/mysql/4.0.html
本文鏈接:
http://www.openphp.cn/index.php?module=article&id=132