MySQL未经身份验证的用户

时间:2014-07-09 17:00:34

标签: mysql

问题
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时,我只在主机列中看到IPS或“localhost”,所以我不知道如何解决它。

总体来说,进程列表对其他用户来说似乎仍然很高,但在“info”下它表示NULL。无论如何要清除这些?

1 个答案:

答案 0 :(得分:1)

好的,这是问题,如何解决..我花了一个月的时间,我一直在寻找

“用户”列中与“未经身份验证的用户”的连接已启动连接但尚未发送他/她的凭据,因此服务器无法确切知道谁正在连接。

如果此类连接仅在经过身份验证时显示在列表中,则可能会从可用套接字中运行服务器,您甚至不知道原因。

大多数情况下卡住的连接都是由于DNS无法正常解析,所以skip-name-resolve选项会有所帮助。

Pythian博客的更多信息。

在my.cf中使用skip-name-resolve,这应解决您的问题。