首頁  >  文章  >  後端開發  >  為什麼我無法使用舊版驗證連線到 MySQL 4.1?

為什麼我無法使用舊版驗證連線到 MySQL 4.1?

DDD
DDD原創
2024-11-05 05:48:02477瀏覽

Why Can't I Connect to MySQL 4.1  with Legacy Authentication?

無法使用舊版驗證建立與MySQL 4.1 的連線

嘗試連線到bluesql.net 託管的MySQL 資料庫時,您可能會遇到以下問題:遇到錯誤,指示無法使用4.1 之前的MySQL 版本中使用的過時身份驗證機制建立連線。此問題源自於後續 MySQL 版本中實作較新的身份驗證方法,而較舊的密碼方案可能仍然存在,可能會阻礙與某些應用程式的相容性。

在您的情況下,您正在使用 PHP 5.3 和 mySQLi 擴充功能( new mysqli(...)) 連接到資料庫。要在不降級PHP 版本的情況下解決此問題,您應該考慮以下步驟:

驗證舊密碼架構使用

確定您正在嘗試的MySQL 伺服器是否為透過執行下列SQL 查詢將to access 設定為使用舊密碼模式:

SHOW VARIABLES LIKE 'old_passwords'

如果查詢結果顯示“old_passwords,Off”,則表示伺服器已配置為使用舊密碼密碼架構。

識別使用舊密碼的帳號

檢查 mysql.user 表以識別仍使用舊密碼的使用者帳號。執行以下查詢:

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

使用舊密碼的帳戶的密碼長度為“16”,而使用新密碼的帳戶的密碼長度為“41”。

為受影響的帳戶設定新密碼

對於使用舊密碼識別的每個帳戶,使用以下命令設定新密碼:

SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;

取代「使用者」和「主機」 " 使用從先前查詢中取得的值。

驗證密碼更新

重新檢查更新帳戶的密碼長度。現在更新帳戶的密碼長度。現在更新帳戶的密碼長度。現在應該顯示“41”,表明正在使用新的密碼架構。

以上是為什麼我無法使用舊版驗證連線到 MySQL 4.1?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn