首頁 > 資料庫 > mysql教程 > 為什麼我收到「mysqli_connect 驗證方法未知 ([caching_sha2_password])」錯誤?

為什麼我收到「mysqli_connect 驗證方法未知 ([caching_sha2_password])」錯誤?

Mary-Kate Olsen
發布: 2024-12-17 11:02:26
原創
238 人瀏覽過

Why Am I Getting a

驗證錯誤已解決:mysqli_connect 驗證方法未知([caching_sha2_password])

使用 PHP 的 mysqli_nect sql資料庫時,您可能會遇到以下錯誤:「伺服器請求客戶端未知的身份驗證方法[caching_sha2_password]」。當 MySQL 伺服器配置為使用 caching_sha2_password 驗證方法時,會出現此問題,某些使用者帳戶本身不支援此方法,或者可能需要額外配置。

錯誤原因:

caching_sha2_password 驗證方法是 MySQL Server 用於密碼儲存和驗證的安全方法。它取代了舊的 mysql_native_password 方法,並透過以雜湊形式儲存密碼來增強安全性。預設情況下,當滿足某些條件時,caching_sha2_password 將成為預設身份驗證方法。

解決問題:

要解決此問題,您有兩種選擇:

  1. 將使用者帳戶轉換為mysql_native_password:
  • 執行下列 SQL 指令將使用者帳戶轉換為使用 mysql_native_password驗證方法:
ALTER USER '<mysqlUsername>'@'localhost' IDENTIFIED WITH mysql_native_password BY '<mysqlUsernamePassword>';
登入後複製
  1. 修改MySQL伺服器設定:
  • 名為my.cnf)並導覽至[mysqld] 部分。
  • 更改「default_authentication_plugin」設定從caching_sha2_password 到mysql_native_password:
[mysqld]
default_authentication_plugin=mysql_native_password
登入後複製

更改生效。

建立新使用者mysql_native_password:

使用 mysql_native_password驗證建立新使用者時,使用以下指令:

CREATE USER '<mysqlUsername>'@'localhost' IDENTIFIED WITH mysql_native_password BY '<mysqlUsernamePassword>';
登入後複製

其他注意事項:

    確保用於連接資料庫的使用者俱有適當的
  • 檢查MySQL 伺服器的錯誤日誌,以了解可能提供更多上下文的任何其他錯誤訊息。
  • 考慮更新 MySQL 伺服器上的密碼雜湊演算法以進一步增強安全性。

以上是為什麼我收到「mysqli_connect 驗證方法未知 ([caching_sha2_password])」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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