首页 > 数据库 > mysql教程 > 为什么即使凭证正确,MySQL 也会返回'访问被拒绝”?

为什么即使凭证正确,MySQL 也会返回'访问被拒绝”?

Linda Hamilton
发布: 2024-12-14 05:56:11
原创
1015 人浏览过

Why Does MySQL Return

MySQL ERROR 1045 (28000): Access Denied for User 'bill'

尝试使用用户 'bill' 连接到 MySQL 时使用正确的密码时,错误消息“错误 1045 (28000):用户访问被拒绝出现“bill”@“localhost”(使用密码:YES)。即使已创建用户“bill”、授予所有权限并使用主机“%”指定,也会遇到此错误。

问题的根源

该问题是由于 MySQL 用户中可能存在用户名空白且主机设置为“localhost”或“127.0.0.1”的匿名用户引起的

MySQL 如何解决用户身份验证

当客户端尝试连接时,MySQL 会检查用户表并选择与客户端主机名和用户匹配的第一行姓名。首先按照最具体的主机值对选择进行排序,并给予文字主机名和 IP 地址优先级。

在这种情况下,以“localhost”作为主机的匿名用户比用户“更好地匹配连接尝试” bill'@'%',阻止访问 'bill'。

推荐解决方案

推荐解决方案是删除匿名用户,因为它可能会造成安全漏洞。为此,请执行以下命令:

DROP USER ''@'localhost';
登录后复制

其他注意事项

  1. 通过套接字连接:通过套接字进行身份验证时,可以使用用户 'bill'@'%'。
  2. 连接类型的影响:TCP 连接或套接字连接不会影响身份验证过程,但只有匿名用户可以通过套接字进行连接。
  3. 匿名用户密码:在连接字符串中提供匿名用户的密码,即使指定不同的用户名也可以进行访问,因为排序规则。

以上是为什么即使凭证正确,MySQL 也会返回'访问被拒绝”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板