问题
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。无论如何要清除这些?
答案 0 :(得分:1)
好的,这是问题,如何解决..我花了一个月的时间,我一直在寻找
“用户”列中与“未经身份验证的用户”的连接已启动连接但尚未发送他/她的凭据,因此服务器无法确切知道谁正在连接。
如果此类连接仅在经过身份验证时显示在列表中,则可能会从可用套接字中运行服务器,您甚至不知道原因。
大多数情况下卡住的连接都是由于DNS无法正常解析,所以skip-name-resolve选项会有所帮助。
Pythian博客的更多信息。
在my.cf中使用skip-name-resolve,这应解决您的问题。