mysqli_connect:驗證方法未知(Caching_sha2_password)
背景:
mysqli_connect 時()函數時,可能會發生錯誤:「錯誤: mysqli_connect():伺服器請求客戶端未知的身份驗證方法。」這表示伺服器使用的身份驗證方法與客戶端實作的身份驗證方法不符。 具體來說,如果 MySQL 伺服器設定為使用 caching_sha2_password 驗證方法,則當用戶端不支援時,可能會出現錯誤或未配置為使用該方法。故障排除與解決方案:
在給定的情況下,MySQL 伺服器設定為使用 caching_sha2_password 驗證,而 PHP 客戶端無法處理該驗證。要解決此問題,您可以:1.修改MySQL 伺服器設定:
將MySQL 的ini 檔案(Windows 上為my.ini,Linux 上為/ etc/my.cnf)中的default_authentication_plugin 設定從caching_sha2_password 變更為mysql_native_password。這將允許伺服器使用舊的身份驗證方法。2.更新 PHP 用戶端:
將 PHP MySQL 用戶端升級到支援 caching_sha2_password 驗證的版本。但是,這可能不是必需的,因為伺服器配置變更應該可以修正問題。3.設定使用者驗證:
在MySQL 中執行以下SQL 指令:ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
以上是為什麼 mysqli_connect() 失敗並顯示「驗證方法未知(Caching_sha2_password)」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!