首頁 >資料庫 >mysql教程 >為什麼我在 MySQL 中收到「使用者\'使用者名稱\'@\'localhost\'\」的存取被拒絕?

為什麼我在 MySQL 中收到「使用者\'使用者名稱\'@\'localhost\'\」的存取被拒絕?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-01 16:02:14354瀏覽

Why Am I Getting

用戶'用戶名'@'localhost'訪問被拒絕

錯誤訊息「SQLSTATE[HY000] [1045]用戶'用戶名'@'localhost'訪問被拒絕'" 表示指定的使用者無權存取資料庫。發生這種情況的原因可能是使用者不存在、密碼不正確或使用者沒有必要的權限。

驗證使用者存在

要檢查使用者是否存在,請執行下列指令query:

SELECT user, host FROM mysql.user

尋找具有指定使用者名稱和主機名稱的行,表示使用者存在。

密碼驗證

如果使用者存在,請透過更新來確認密碼正確:

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password')

授予權限

使用者可能沒有足夠的權限來存取資料庫。使用以下命令授予必要的權限:

GRANT SELECT ON database_name.* TO 'username'@'localhost'

防火牆和連接埠配置

如果上述步驟無法解決問題,請檢查防火牆設定以確保資料庫連接埠(通常是3306)已開放。此外,請驗證 app.php 設定檔中使用者的主機名稱。主機名稱應與 mysql.user 表中使用者的主機列相符。

通配符主機

如果使用者主機設定為 %,則符合任何主機。如果 app.php 配置中的主機名稱與使用者的主機名稱不匹配,這可能會導致問題。明確將使用者的主機變更為 localhost。

刷新權限

MySQL 權限表所做的變更需要由特權使用者執行的 FLUSH PRIVILEGES 語句才能生效:

FLUSH PRIVILEGES

以上是為什麼我在 MySQL 中收到「使用者\'使用者名稱\'@\'localhost\'\」的存取被拒絕?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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