舊驗證的MySQL 連線錯誤
遇到錯誤訊息「mysqlnd 無法使用舊式驗證連線到MySQL 4.1」表示有相容性問題嘗試連接到使用過時密碼方案的MySQL 資料庫。要解決此問題,確定資料庫伺服器是否配置為使用舊密碼架構至關重要。
檢查服務器配置
執行以下SQL 查詢:
<code class="sql">SHOW VARIABLES LIKE 'old_passwords'</code>
登入後複製
了解結果
- 如果結果為old_passwords,Off,則伺服器配置為使用新的驗證例程。使用者密碼可能以舊格式存儲,但伺服器將使用新例程進行身份驗證。
- 如果結果為 old_passwords,On,則伺服器預設為使用舊的驗證例程。在這種情況下,將使用舊密碼方案進行身份驗證。
故障排除與解決方法
要解決問題,請依照下列步驟操作:
-
檢查使用者密碼格式:驗證mysql.user表中使用者的密碼長度。長度為 16 個字元表示舊密碼,長度為 41 個字元表示新密碼。
-
設定新密碼(如果需要):如果使用者的密碼是舊密碼格式,使用下列指令設定新密碼:
<code class="sql">SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');</code>
登入後複製
-
刷新權限:執行更新資料庫的權限:
<code class="sql">FLUSH Privileges;</code>
登入後複製
-
重新驗證密碼長度:在mysql.5.檢查用戶的密碼長度。現在應該是 41 個字符,表示正在使用新的密碼格式。
-
重新建立連線:完成這些步驟後,嘗試使用客戶端(例如 mysqlnd)重新連線到資料庫。連接應該會成功。
其他資源
有關更多信息,請參閱以下MySQL 文件:
- http: //dev.mysql .com/doc/refman/5.0/en/old-client.html
- http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html
- http://dev.mysql.com/doc/refman/5.0/en/set-password.html
以上是如何修正「mysqlnd 無法使用舊式驗證連線到 MySQL 4.1」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!