错误消息“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中文网其他相关文章!