為什麼我無法使用 PHP 5.3.0 連線到我的 MySQL 資料庫?

Patricia Arquette
發布: 2024-11-03 15:57:30
原創
643 人瀏覽過

Why Can't I Connect to My MySQL Database with PHP 5.3.0?

解決MySQL PHP 不相容性問題

嘗試使用PHP 5.3.0 連接到遠端MySQL 資料庫時,使用者可能會遇到一個特殊問題,導致與資料包長度和舊身份驗證相關的錯誤。當連接到執行 MySQL 版本 5.0.22 的資料庫時,會出現這種不相容性,而連接到版本 5.0.45 的其他資料庫卻成功。

揭示根本原因

造成這種不相容的根本原因在於MySQL帳號的密碼。如果密碼是舊的 16 個字元的字串,MySQL 的 mysqlnd 擴充將無法利用它來建立與 MySQL 伺服器的連線。

解決問題

至要修正此問題,可以採取兩種解法路徑:

  1. 重置使用者密碼:

    • 重設受影響使用者的密碼使用下列指令:
      SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
  2. 檢查伺服器設定:

    • 驗證伺服器是否配置為預設使用或建立舊密碼。

確定密碼長度

要確定受影響使用者密碼的長度,請在有問題的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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板