我们重新启动了一台运行 mysql 的机器,并且遇到了一些奇怪的问题。其他机器上的大多数进程都可以毫无问题地连接。如果我们显式地通过环回地址进行连接,我们也可以在本地进行连接。
这有效:
mysql -hlocalhost -utest_user -psecret_password
当我们运行命令时:
mysql -h192.168.1.10 -utest_user -psecret_password
在本地机器上我们收到以下错误:
ERROR 1045 (28000): Access denied for user `test_user`@`SERVER_123`
我们有以下用户:
test_user@localhost
test_user@%
我们通过添加以下用户解决了该问题:
test_user@SERVER_123
其中 SERVER_123 是计算机的非限定名称。
我们不知道为什么必须添加该额外用户,并且我们不想保留它,但我们也不知道为什么添加它可以解决问题。
为什么从本地计算机通过 IP(即 mysql -ha.b.c.d -utest_user -ppsswd)连接无法匹配test_user@%
用户,但会匹配test_user@machine_name
,其中 machine_name 是机器的非限定名称?
这是用户表
anonymous %
anonymous SERVER_123
anonymous localhost
test_user_2 %
test_user_3 %
root ::1
root 127.0.0.1
root SERVER_123
root localhost
注:解决了这个问题。以某种方式重新启动计算机肯定会更改 192.168.1.10 的解析方式,使其解析为 SERVER_123。这导致来自 192.168.1.10 的登录匹配test_user
@SERVER_123
.
我会看一下 MySQL 文档这一部分中的排序规则:https://dev.mysql.com/doc/refman/5.7/en/connection-access.html https://dev.mysql.com/doc/refman/5.7/en/connection-access.html
传入连接的客户端主机名和用户名可能与用户表中的多行匹配。
您的用户可能被识别为具有不同密码的另一个用户。您的用户表中还存在哪些其他条目?
根据新信息更新:您的登录被识别为 ''@'%' 用户。该用户要么具有不同的凭据,要么缺少必要的权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)