问题描述:最近两天服务器出现大量unauthenticated user这种线程连接,导致很多正常使用mysql数据库的用户无法打开网站,在任务管理器里面看到mysql进程mysqld-nt.exe的内存占用非常高,然后就隔一断时间,数据库就自动停掉。但是把数据库移动到其他服务器,就可以正常了,所以问题就在数据库服务器上。
LL | login | NULL |
| 7967 | unauthenticated user | 213.X.X.X:2154 | NULL | Connect | NU
LL | login | NULL |
| 7968 | unauthenticated user | 213.X.X.X:2155 | NULL | Connect | NU
LL | login | NULL |
| 7971 | unauthenticated user | 213.X.X.X:2165 | NULL | Connect | NU
LL | login | NULL |
| 7972 | unauthenticated user | 213.X.X.X:2169 | NULL | Connect | NU
LL | login | NULL |
| 7973 | unauthenticated user | 213.X.X.X:2176 | NULL | Connect | NU
LL | login | NULL |
| 7975 | unauthenticated user | 213.X.X.X:2179 | NULL | Connect | NU
LL | login | NULL |
| 7976 | unauthenticated user | 213.X.X.X:2180 | NULL | Connect | NU
LL | login | NULL |
| 7977 | unauthenticated user | 213.X.X.X2195 | NULL | Connect | NU
LL | login | NULL |
| 7982 | unauthenticated user | 213.X.X.X:2228 | NULL | Connect | NU
LL | login | NULL |
| 7984 | unauthenticated user | 213.X.X.X:2239 | NULL | Connect | NU
LL | login | NULL |
| 7985 | unauthenticated user | 213.X.X.X:2242 | NULL | Connect | NU
LL | login | NULL |
0 | NULL | show processlist |
1 | | NULL |
+------+----------------------+----------------------+------------+---------+---
---+----------------+-------------------+
386 rows in set (0.01 sec)
解决方法:1.首先确认防火墙上有没有屏蔽到什么端口,是硬件防火墙,在数据库服务器上打开网站,都打不开,说明被屏蔽了,联系机房取消屏蔽。
2. 看看网卡驱动是不是有问题,因为其他服务器上的网站调用数据库,不管连接的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查 mysqld 会尝试去反查 IP -> DNS ,由于反查解析过慢,无法应对快速多量的查詢
反查是上层 ISP 所掌控。把网卡驱动也重新安装一次,然后重启服务器。
3. 再观察发现原来的大量unauthenticated user 线程都已经消失,网站恢复正常,mysqld-nt.exe的占用内存也恢复正常水平。
以上是本人遇到的问题解决方法,可能不适用所有的情况,请视情况排除问题。
转载于:https://blog.51cto.com/nj63nscom/448541