MySQL未经身份验证的用户

MySQL未经身份验证的用户,mysql,Mysql,问题 MySQL显示了许多未经身份验证的用户 设置 指向5个Web服务器的负载平衡服务器 全部连接到1个数据库/文件服务器 信息 似乎只有来自服务器1和2的请求存在未经验证的用户问题。服务器3、4和5工作正常,但看起来它们的用户仍在进程列表中。是否有任何原因导致只有两台服务器出现故障 +--------+------------------- --+----------------------+----------+-----------+------+---------+------+

问题
MySQL显示了许多未经身份验证的用户

设置
指向5个Web服务器的负载平衡服务器 全部连接到1个数据库/文件服务器

信息
似乎只有来自服务器1和2的请求存在未经验证的用户问题。服务器3、4和5工作正常,但看起来它们的用户仍在进程列表中。是否有任何原因导致只有两台服务器出现故障

+--------+------------------- --+----------------------+----------+-----------+------+---------+------+
| Id     | User                 | Host                 | db       | Command   | Time | State   | Info |
+--------+----------------------+----------------------+----------+-----------+------+---------+------+
| 171733 | unauthenticated user | web.1.IP.HERE:50038  | NULL     | Connect   | NULL | login   | NULL |
| 171735 | unauthenticated user | web.1.IP.HERE:50039  | NULL     | Connect   | NULL | login   | NULL |
| 171736 | unauthenticated user | web.1.IP.HERE:60721  | NULL     | Connect   | NULL | login   | NULL |
| 171737 | unauthenticated user | web.2.IP.HERE:50040  | NULL     | Connect   | NULL | login   | NULL |
| 171746 | unauthenticated user | web.2.IP.HERE:60723  | NULL     | Connect   | NULL | login   | NULL |
| 181337 | username             | web.3.IP.HERE:34426  | dbName   | Sleep     |    4 |         | NULL |
| 181339 | username             | web.3.IP.HERE:51668  | dbName   | Sleep     |    4 |         | NULL |
| 181340 | username             | web.4.IP.HERE:51669  | dbName   | Sleep     |    4 |         | NULL |
+--------+----------------------+----------------------+----------+-----------+------+---------+------+

我看到有人提到
skip name resolve
,但当我运行
select user,host FROM mysql.user
时,我只在host列中看到IPS或“localhost”,所以我不知道这将如何修复它


总的来说,processlist对于其他用户来说似乎仍然很高,但在“info”下显示为NULL。不管怎样,要清除这些问题?

好的,下面是问题和解决方法。。我花了一个月的时间到处找

与“用户”列中“未经身份验证的用户”的连接已启动连接,但尚未发送其凭据,因此服务器不知道到底是谁在连接

如果此类连接仅在经过身份验证时出现在列表中,则可能会导致服务器的可用套接字不足,而您甚至不知道原因

大多数情况下,由于DNS解析不正确而导致连接卡住,跳过名称解析选项将有助于解决此问题

更多信息请访问Pythian博客


在my.cf中使用skip name resolve应该可以解决您的问题。

您的授权是什么样子的?@frlan-有一个条目,上面写着@localhost'Well。。。您的任何Web服务器都不能直接访问数据库。显然,这不是问题所在case@frlan-我运行了SHOW GRANTS,但没有意识到这是为登录的用户提供的。作为root用户,我运行select*from information\u schema.user\u privileges;我只看到本地主机或IP。您的所有Web服务器都列在IP部分吗?
跳过名称解析
真的为我节省了时间。有趣的是,对于一台服务器来说,这没有问题,但是对于另一台服务器(备份服务器),来自php客户端的所有连接都停留在登录状态。。。