錯誤訊息「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中文網其他相關文章!