去年就遇到过这个问题,今天又被我碰到了,幸亏还有些印象很快解决掉。
问题表现:
1. 从远程服务器(非本机)上执行mysql命令尝试链接到数据库,非常缓慢,甚至直接链接不上
2. 从本机链接数据库,速度很快表现正常
3. show processlist发现大量unauthenticated user 尝试链接数据库
问题分析:
当远程服务器尝试链接到数据库时,不管链接的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查 mysqld 会尝试去反查 IP -> dns ,由于反查解析过慢,就会无法应付过量的查询;
解决办法:
修改/etc/my.cnf配置文件,在[mysqld]一节内加入-skip-name-resolve指示数据库不启用逆向域名解析功能,然后重启数据库。