解決「無法使用舊式驗證連接到MySQL 4.1」問題
嘗試建立與MySQL 資料庫的連線時,您可能會遇到「連線錯誤(2000) mysqlnd 無法使用舊驗證連線到MySQL 4.1」錯誤訊息。出現此錯誤的原因是早期 MySQL 版本採用了過時的密碼加密機制。
了解根本原因
4.1 之前的 MySQL 版本實作了獨特的密碼雜湊方案。新版本提供了利用傳統或現代哈希方法的靈活性。如果伺服器配置為使用過時的方法,則使用舊方案雜湊密碼的使用者可能會遇到此錯誤。
故障排除與解決方案
修正問題,請依照下列步驟操作:
- 確認伺服器設定: 使用SQL 查詢「SHOW VARIABLES LIKE 'old_passwords'”來決定伺服器是否正在使用過時的密碼雜湊方法。回應“old_passwords,Off”表示使用者表中存在舊密碼記錄。
- 檢查使用者帳號:執行查詢「SELECT User, Host, Length(Password) FROM mysql.user」來檢查每個使用者帳號的密碼雜湊演算法。密碼長度 16 表示舊哈希,而長度 41 表示現代哈希。
- 更新密碼(如果適用): 如果相關帳戶使用舊雜湊方法,使用語法「SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');" 。
- 刷新權限:更新密碼後,執行「FLUSH Privileges;」更新存取權。
其他資源
更多信息,請參閱官方 MySQL文件:
[舊客戶相容性](http://dev.mysql.com/doc/refman/5.0/en/old-client.html)- [密碼哈希](http://dev.mysql.com/doc/ refman/5.0/en/password-hashing.html)
- [設定密碼語法](http://dev.mysql.com/doc/refman/5.0/en/set-password.html)
-
以上是如何修復「mysqlnd 無法使用舊式驗證連線到 MySQL 4.1」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!