系統環境:
- MySQL 4.1.7 (官方正式推薦版本,支援 UTF-8 編碼)
- PHP 4.3.9
- phpMyAdmin 2.6.0-pl3
問題:
- 當使用 phpmyadmin 2.6.0-p13 欲登入 MySQL 4.1.7 時,會出現如下錯誤訊息:
#1251 – Client does not support authentication protocol requested by server; consider upgrading MySQL client
原因:
- 因為 MySQL 4.1 以上版本為了提高安全性,使用了新的密碼驗證機制。如此,MySQL 的 Client Library 需要 4.0 版本以上。但目前在 Client 端所使用的 PHP 版本若為 5.0 以下(如 4.3.9),其內建的 MySQL Library 大都為 3.23,並不支援新版的密碼驗證機制。
解決方案(以下擇其一):
- 將 PHP 升級為 5.0版以上(但許多應用伺服器,包括諸多 Blog 平台,尚未支援 PHP5)
- 切換 PHP 4.3.9的 MySQL extension 為 MySqlLi (但是,在 Windows 的平台如何切換?我不知道…)
- 在 MySQL console 下,更新密碼形式改為 OLD_PASSWORD() (設回原來舊版的密碼驗證機制)。
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') -> WHERE Host = 'some_host' AND User = 'some_user'; mysql> FLUSH PRIVILEGES;
參考文件:MySQL Manual | A.2.3 Client does not support authentication protocol
訂閱 RSS (by FeedBurner)
訂閱 RSS (by Wordpress)

