[快答] PHP 連線 mysql 出現 The server requested authentication method unknown to the client
錯誤訊息: The server requested authentication method unknown to the client
環境: 升級 php 5.5 以上,mysql 使用舊資料
原因:mysql 新增使用者時,使用 old_password 儲存使用者密碼,特徵: 密碼長度 16
環境: 升級 php 5.5 以上,mysql 使用舊資料
原因:mysql 新增使用者時,使用 old_password 儲存使用者密碼,特徵: 密碼長度 16
因為 php 5.5 使用新密碼連線 ( 密碼長度 41 ),所以 php 無法連線資料庫。解法:
- 可以修改 mysql 設定
在不重新啟動 mysql 狀態下的方法
#mysql -u root -p
//產生新版本密碼
mysql > select password('使用者登入mysql密碼');
//查詢舊版本密碼
mysql > select old_password('使用者登入mysql密碼');
//把使用者的舊密碼 改成 新密碼
mysql > update mysql.user set `Password` = '剛剛產生的新版密碼' where User = '使用者' AND `Password` = '舊版密碼' ;
//更新權限
mysql > FLUSH PRIVILEGES; - 不能更新 mysql 資料庫的方法
不能更新 mysql . user 表的話,就只能降 php 版本
確認 5.2.x 、 5.3.x 可直接使用舊版密碼。
完成。