首頁 >資料庫 >mysql教程 >如何修復 PHP 中的「mysqli_connect:客戶端未知的身份驗證方法 [caching_sha2_password]」錯誤?

如何修復 PHP 中的「mysqli_connect:客戶端未知的身份驗證方法 [caching_sha2_password]」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-12-28 07:14:46898瀏覽

How to Fix the

緩解 PHP 中的「mysqli_connect:客戶端未知的驗證方法 [caching_sha2_password]」

使用 MySQL 的 mysqli_nect與本機資料庫進行驗證時,您可能會遇到神秘的錯誤,「mysqli_connect(): 伺服器要求的驗證方法未知至用戶端[caching_sha2_password]。」此錯誤是由於伺服器使用的驗證外掛程式與用戶端期望的身份驗證插件不匹配而引起的。

MySQL Server ini 檔案規定了用於伺服器連線的預設驗證外掛程式。預設情況下,此設定配置為“caching_sha2_password”,表示伺服器支援 caching_sha2_password 驗證方法。在您的情況下,您的伺服器已進行相應配置。

相反,您的 PHP 程式碼嘗試使用舊版身份驗證方法進行連接,例如「mysql_native_password」方法。這種不匹配會導致身份驗證失敗並導致上述錯誤。

解決方案

要解決此問題,您可以修改 PHP 程式碼使用的驗證方法以符合伺服器的預設設定。或者,您可以變更 MySQL Server ini 檔案以指定與 PHP 程式碼相容的身份驗證外掛程式。以下是一些可能的解決方案:

  • 在 MySQL 伺服器上啟用 mysql_native_password 外掛程式:

    • 開啟 MySQL 伺服器 ini 檔案並找到「default_authentication_plugin」參數。
    • 將其值更改為"mysql_native_password."
  • 修改PHP 程式碼以使用caching_sha2_passwordwordsqls:

    修改PHP 程式碼以使用caching_sha2_passwordword 話> ) 函數將MYSQLI_OPT_AUTH_PLUGIN 選項設定為"caching_sha2_password."
  • 或者,您可以使用 SQL 指令將 MySQL 使用者的驗證方法切換為mysql_native_password:

    更改現有使用者:
  • 執行SQL 指令: ALTER USER 'mysqlUsername'@'localhost' IDENTIED WITH myativenative WITH 'mysqlUsernamePassword';
  • 使用mysql_native_password 建立新使用者:
  • 執行 IDSQL 指令:建立使用者'jeffrey'@'local_freyENT'sqlpet_v BY 'password';
  • 透過實作這些解決方案,您可以協調 MySQL 伺服器和 PHP 用戶端使用的驗證方法,讓您成功建立與資料庫的連線。

以上是如何修復 PHP 中的「mysqli_connect:客戶端未知的身份驗證方法 [caching_sha2_password]」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn