透過已棄用的驗證解決MySQL 連線問題
當嘗試連線到bluesql.net 等平台上託管的MySQL 資料庫時,使用者可能會遇到「連線錯誤(2000) mysqlnd 無法使用舊式驗證連線到MySQL 4.1」錯誤。出現此錯誤的原因是較舊的 MySQL 版本和較新的版本使用的身份驗證協定之間存在差異,這些協定同時支援新舊密碼模式。
要解決此問題,必須確定伺服器是否正常預設情況下配置為使用舊密碼架構。這可以透過執行 SQL 查詢“SHOW VARIABLES LIKE 'old_passwords';”來驗證。從命令列或使用基於 GUI 的 MySQL 管理工具。如果查詢傳回“old_passwords,Off”,則現有使用者帳戶可能會使用舊密碼。
可以透過檢查「mysql.user」表來確認將使用哪個驗證例程。使用舊密碼的帳戶的密碼長度為“16”,而使用新密碼的帳戶的密碼長度為“41”。若要設定新密碼,請使用「SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');」查詢,將「User」和「Host」替換為先前查詢中獲得的值。
密碼更新後,執行「FLUSH Privileges;」詢問。再次使用相同的「mysql.user」表查詢驗證密碼長度;現在應該是「41」。此變更將允許使用 mysqlnd 的客戶端成功連接到 MySQL 伺服器。
有關更多信息,請參閱以下連結中的官方 MySQL 文件:
以上是如何修復 MySQL'mysqlnd 無法使用舊式驗證連線到 MySQL 4.1”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!