远程访问MySQL数据库很慢

今天突然数据库没法访问了,于是登录到服务器上,远程登录数据库,发现不是无法访问,而是特别慢,而且从local访问没有这个问题。

 

于是查看mysql里的进程,发现很多这种进程:

                    | NULL             | 
| 182 | unauthenticated user | 192.168.1.101:58804   | NULL                | Connect     | NULL | login                                                          | NULL             | 
| 183 | unauthenticated user | 192.168.1.101:58806   | NULL                | Connect     | NULL | login                                                          | NULL             | 
| 184 | unauthenticated user | 192.168.1.101:58807   | NULL                | Connect     | NULL | login                                                          | NULL             | 
| 185 | unauthenticated user | 192.168.1.101:58808   | NULL                | Connect     | NULL | login                                                          | NULL             | 
| 186 | unauthenticated user | 192.168.1.101:58811   | NULL                | Connect     | NULL | login                                                          | NULL             | 
| 187 | aloha                | localhost             | NULL                | Query       |    0 | NULL                                                           | show processlist | 
| 188 | unauthenticated user | 192.168.1.101:58814   | NULL                | Connect     | NULL | login

 

 

仔细研究了一下,发现这属于官方一个系统上的特殊设定,就把他当成mysql的一个bug
不管链接的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查 
mysqld 会尝试去反查 IP -> dns ,由于反查解析过慢,就会无法应付过量的查询。

 

解决办法:

1 /usr/local/mysql/bin/mysqld_safe --skip-name-resolve --user=mysql&

加 --skip-name-resolve 这么一个参数就可以,关闭mysql的dns反查功能。

2 编辑/etc/my.cnf

在[mysqld]段中加入

skip-name-resolve

重启mysql

转自: http://thierry-xing.iteye.com/blog/1532999

猜你喜欢

转载自djkin.iteye.com/blog/1671678