首頁 > 資料庫 > mysql教程 > 如何修復「mysqli_connect():伺服器請求客戶端未知的身份驗證方法 [caching_sha2_password]」錯誤?

如何修復「mysqli_connect():伺服器請求客戶端未知的身份驗證方法 [caching_sha2_password]」錯誤?

Mary-Kate Olsen
發布: 2024-12-13 00:38:10
原創
514 人瀏覽過

How to Fix the

解決 php mysqli_connect 的「mysqli_connect: 驗證方法未知到客戶端 [caching_sha2_password]」錯誤

使用 php mysqli_nect 建立與資料庫的連線時,有可能遇到錯誤“連接到資料庫時發生錯誤”,並顯示特定訊息“mysqli_connect():伺服器請求客戶端未知的身份驗證方法 [caching_sha2_password]”。這種情況通常是由於 MySQL 伺服器上配置的身份驗證方法與客戶端期望的不同而發生。

在這種情況下,PHP 腳本使用 caching_sha2_password 驗證方法,該方法需要符合 MySQL 使用者表中定義的憑證。但是,user1 帳號似乎沒有 caching_sha2_password 對應的密碼雜湊。

要解決此問題,您有幾個選項:

  1. 使用mysql_native_password驗證:將MySQL Server ini 檔案中的default_authentication_plugin 設定為成本,與user1 的密碼雜湊相容。這將允許 user1 成功登入。
  2. 為user1 建立caching_sha2_password 密碼雜湊:發出下列SQL 指令為user1 建立caching_sha2_password 雜湊:

    ALTER USER 'user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
    登入後複製
    將「選擇的安全密碼。這將更新 user1 的密碼雜湊以使用 caching_sha2_password,允許其使用此方法進行身份驗證。

  3. 對現有雜湊強制使用caching_sha2_password:如果您無法建立新的密碼雜湊由於帳戶限制,您可以強制對現有雜湊使用caching_sha2_password 。發出下列 SQL 指令:

    SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('existing_password');
    登入後複製
    將 'existing_password' 替換為 user1 的目前密碼。這將更新哈希以使用 caching_sha2_password,而無需更改密碼本身。

執行這些過程之一後,您應該能夠使用 caching_sha2_password 驗證成功建立與資料庫的連線。請記住查看 MySQL 文件以獲取密碼管理的更多詳細資訊和選項。

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

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