錯誤:mysqlnd 無法使用舊版驗證連接到MySQL 4.1
使用PHP 5.3 和MySQL 5.5 模式時,開發人員可能會遇到到以下情況錯誤:
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.
此錯誤訊息表示MySQL 本機驅動程式mysqlnd 由於MySQL 4.1 或更早版本中使用的過時驗證機製而無法建立安全連線。
解決問題
要解決此連接問題,請按照以下步驟操作:
刪除或註解掉我的“old_passwords”設定.cnf:
修改my.cnf 設定檔並找到包含'old_passwords = 1' 的行。刪除此行或在開頭新增“#”字元將其註解掉。
重新啟動 MySQL:
重新啟動 MySQL 服務以應用 my.cnf 中所做的變更。此步驟可確保 MySQL 使用新的密碼格式。如果跳過,MySQL 將繼續使用不安全的格式。
更新使用者密碼:
連接到資料庫並執行以下查詢以識別密碼過時的使用者:
SELECT user, Length(`Password`) FROM `mysql`.`user`;
此查詢將顯示具有舊密碼雜湊值(16 個字元)和新密碼雜湊值(41 個字元)的使用者。
執行密碼更新:
對於具有16 個字元密碼雜湊的用戶,請使用以下命令更新其密碼:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
將「使用者名稱」替換為實際使用者名稱和「密碼」 ' 使用所需的新密碼。
刷新權限:
最後,執行下列指令以套用更新的密碼:
FLUSH PRIVILEGES;
以上是如何修正「mysqlnd 無法使用舊版驗證連線到 MySQL 4.1」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!