使用MySQLi 透過舊式驗證連接到MySQL 4.1
嘗試使用MySQLi 建立與MySQL 資料庫的連線時,您可能會遇到以下錯誤:
Connect Error (2000) mysqlnd cannot connect to MySQL 4.1+ using old authentication
此錯誤是由於在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 權限;套用變更。
驗證密碼長度:
重新運行步驟2 中的查詢以確認密碼長度現在為41 .
透過實作這些步驟,您應該能夠使用MySQLi 成功連接到MySQL 資料庫,即使它使用舊密碼方案。
以上是如何使用 MySQLi 連接到具有舊驗證的 MySQL 4.1?的詳細內容。更多資訊請關注PHP中文網其他相關文章!