解決MySQL PHP 不相容性問題
嘗試使用PHP 5.3.0 連接到遠端MySQL 資料庫時,使用者可能會遇到一個特殊問題,導致與資料包長度和舊身份驗證相關的錯誤。當連接到執行 MySQL 版本 5.0.22 的資料庫時,會出現這種不相容性,而連接到版本 5.0.45 的其他資料庫卻成功。
揭示根本原因
造成這種不相容的根本原因在於MySQL帳號的密碼。如果密碼是舊的 16 個字元的字串,MySQL 的 mysqlnd 擴充將無法利用它來建立與 MySQL 伺服器的連線。
解決問題
至要修正此問題,可以採取兩種解法路徑:
重置使用者密碼:
檢查伺服器設定:
確定密碼長度
要確定受影響使用者密碼的長度,請在有問題的MySQL 伺服器上執行以下查詢:
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username'
將「使用者名稱」替換為mysql_connect() 函數中使用的實際使用者名稱。
如果查詢回傳長度為 16 且第一個字元是“*”,則確認密碼是舊的 16 字元雜湊。這意味著需要使用前面提到的方法重設密碼。
透過解決密碼過時的問題,您可以使用 PHP 5.3.0 成功連接遠端 MySQL 資料庫,解決遇到的不相容問題。
以上是為什麼我無法使用 PHP 5.3.0 連線到我的 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!