首页 >数据库 >mysql教程 >为什么我会收到用户'test2”@'localhost”的 MySQL'访问被拒绝”错误?

为什么我会收到用户'test2”@'localhost”的 MySQL'访问被拒绝”错误?

Susan Sarandon
Susan Sarandon原创
2024-11-30 05:46:14882浏览

Why am I Getting a MySQL

MySQL 访问被拒绝错误:'test2'@'localhost'

遇到错误“SQLSTATE[HY000] [1045] 访问被拒绝时for user 'test2'@'localhost'",它表示尝试以用户 'test2' 的身份连接 MySQL 数据库主机“localhost”由于凭据或授权问题而失败。

根本原因

出现此错误的原因有多种:

  • 凭据不正确:确保用户名“test2”和密码“computer”应用程序配置 (app.php) 中提供的参数均有效。
  • 用户未创建: 验证数据库中是否存在名为“test2”的 MySQL 用户。您可以通过以特权用户(例如 root)身份执行以下查询来检查这一点:

    SELECT user, host FROM mysql.user WHERE user = 'test2';

    如果查询不返回行,则该用户不存在。

  • 用户访问限制:即使用户存在,也可能没有足够的权限连接到数据库或访问指定的数据库(工作)。检查授予用户的作业数据库权限。

故障排除步骤

要解决此问题,请按照以下步骤操作:

  1. 验证凭据:重新输入用户名和密码以确保
  2. 创建数据库用户(如果缺少):如果未找到“test2”用户,请使用以下查询创建它:

    CREATE USER 'test2'@'localhost' IDENTIFIED BY 'computer';
  3. 授予权限:确保“test2”用户具有访问作业数据库所需的权限。以特权用户身份运行以下查询:

    GRANT SELECT, UPDATE, INSERT, DELETE ON jobs.* TO 'test2'@'localhost';
  4. 刷新权限: 对权限进行更改后,刷新它们以确保它们生效:

    FLUSH PRIVILEGES;

额外注意事项

  • 检查连接字符串中的主机值。它应该与运行 MySQL 服务器的主机匹配。在这种情况下,如果您连接到同一台计算机上的数据库,则“localhost”是正确的。
  • 禁用任何可能阻止连接的防火墙或防病毒软件。
  • 考虑更改主机名将数据库用户设置为“%”,这允许来自任何主机的连接。但是,这比指定特定主机名安全性较低。

以上是为什么我会收到用户'test2”@'localhost”的 MySQL'访问被拒绝”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn