首頁 > 資料庫 > mysql教程 > 為什麼 mysqli_connect() 失敗並顯示「驗證方法未知(Caching_sha2_password)」?

為什麼 mysqli_connect() 失敗並顯示「驗證方法未知(Caching_sha2_password)」?

Mary-Kate Olsen
發布: 2024-12-21 22:54:34
原創
897 人瀏覽過

Why Does mysqli_connect() Fail with

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';
登入後複製

此指令會將指定使用者的身分驗證方法變更為mysql_native_password,允許他們連接伺服器的caching_sha2_password 設定。

以上是為什麼 mysqli_connect() 失敗並顯示「驗證方法未知(Caching_sha2_password)」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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