我的MySQL服务器上有一个奇怪的用户冲突。 我有2个用户。实际上我遇到了第一个通配符用户(任何用户@任何主机)并且不得不拒绝他所有的安全访问权限:
╔══════╦══════════════╦══════════╦═══════════════════╦═══════╗
║ User ║ Host ║ Password ║ Global privileges ║ Grant ║
╠══════╬══════════════╬══════════╬═══════════════════╬═══════╣
║ Any ║ % ║ No ║ USAGE ║ No ║
║ root ║ 10.15.15.115 ║ No ║ ALL PRIVILEGES ║ Yes ║
╚══════╩══════════════╩══════════╩═══════════════════╩═══════╝
第二个是我正在使用的那个(忘记他没有密码的事实)。当我尝试连接'root'@'10.15.15.115'
时,MySQL说:
Access denied to ''@'%'
即使我明确指定连接到'root'@'10.15.15.115'
为什么MySQL会与第一个通配符用户混淆?
答案 0 :(得分:1)
主机字段指定您从连接的主机,但我对您所写内容的看法使其听起来像10.15.15.115是您将连接到
如果MySQL无法匹配用户名和主机,则会回退到匿名用户(启用时),这看起来像是问题。
根据您显示的结果,我不确定您是如何禁用匿名用户的,但我很确定问题是您的主机不匹配,因此它正在尝试您的匿名用户已禁用,导致错误消息。
在设置用户时,请记住主机localhost
,127.0.0.1
和10.15.15.115
都是不同的连接,即使连接发生在您需要的同一台计算机上也是如此使用正确的主机值进行连接。
答案 1 :(得分:0)
你用什么连接?我假设命令行。如果是这样,您通过命令行尝试的连接是否如此?
mysql -u root -h 10.15.15.115