首頁 > 後端開發 > php教程 > 為什麼在將 PHP 連接到 MySQL 8.0 時出現「身份驗證方法不符」錯誤?

為什麼在將 PHP 連接到 MySQL 8.0 時出現「身份驗證方法不符」錯誤?

Susan Sarandon
發布: 2024-12-05 10:58:09
原創
564 人瀏覽過

Why Am I Getting a

PHP 與MySQL 8.0 錯誤:驗證方法不符

從PHP 連接到MySQL 資料庫時,使用者可能會遇到錯誤「SQLSTATE[HY000] [2054 ]伺服器請求客戶端未知的身份驗證方法。使用的身份驗證方法與客戶端應用程式期望的方法不符。

原因:

MySQL 8.0 引入了預設身份驗證外掛程式稱為 caching_sha2_password,較舊的 PHP 版本或某些客戶端應用程式本身不支援它。預設情況下,應用程式希望使用基於密碼的方法進行身份驗證,而 MySQL 8.0 需要使用 caching_sha2_password 外掛程式。

解決方案:

要解決該錯誤,您需要修改 MySQL 使用的驗證方法以符合您的應用程式所需的方法。操作步驟如下:

  1. 以 root 使用者登入 MySQL。
  2. 執行下列指令將 root 使用者的驗證方式變更為 mysql_native_password:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
登入後複製

將「密碼」替換為根密碼。

  1. 如果您的應用程式使用不同的使用者連接到資料庫,請將上述命令中的「root」替換為適當的使用者。
  2. 重新啟動 MySQL 服務以進行變更生效。

附加註意:

  • 確保您的 PHP 版本支援 caching_sha2_password 方法。如果沒有,請將 PHP 更新到相容版本。
  • 有關身份驗證方法和插件的更多信息,請參閱 MySQL 文件。
  • 如果更改驗證方法後問題仍然存在,請確保使用者俱有存取資料庫所需的權限。

以上是為什麼在將 PHP 連接到 MySQL 8.0 時出現「身份驗證方法不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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