2014-07-09 57 views
1

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

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

信息
看来只能从服务器请求1和2有未认证用户的问题。服务器3,4 & 5工作正常,但看起来像他们的用户留在进程列表中。为什么只有2台服务器会出现问题,是否有任何理由?

+--------+------------------- --+----------------------+----------+-----------+------+---------+------+ 
| 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”的,所以我不看,将如何解决它。

整体而言,其他用户的流程列表仍然很高,但在“信息”下它表示为NULL。无论如何要清除这些?

+0

你如何获得赠款? – frlan

+0

@frlan - 有一个条目,它说@'localhost' – go0n

+1

呃...比你的网络服务器都不应该能够直接访问数据库。显然,情况并非如此 – frlan

回答

1

好,这里是问题,以及如何解决它..我花了一个月,我一直在到处找

在用户列有“未认证用户”的连接已经启动了一个连接,但还没有发送他/她的凭证,所以服务器不知道谁正在连接。

如果这些连接只在进行身份验证时才显示在列表中,它可能会将服务器从可用套接字中运行出来,而您甚至不知道为什么。

大多数卡住的连接是由于DNS解析不正确而导致的,skip-name-resolve选项将帮助解决这个问题。

更多关于Pythian博客的信息。

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

+0

'skip-name-resolve'真的为我节省了一天。有趣的是,对于一台服务器来说,这是没有问题的,但对于另一台服务器(备份服务器)来说,来自php客户端的所有连接都停留在登录状态中。 –

相关问题