远程连接MySQL数据库很慢的解决方法

这几天把网站的 WEB 跟 MySQL 分开成两台服务器了,可发现远程连接数据库的时候变得很慢,在 4 秒种以上,然而测试了本地的连接后又是正常的。
其实出现这种情况主要是因为在 MySQL 中加入了地址查询,会在连接建立的时候建行一次 DNS 的反查询,所以在这里会出现耗时久的情况。
所以在这里可以有两种解决方法:

第一种:在 MySQL 所在服务器的 hosts 上加入过程连入的服务器的IP <=> 域名的记录。

192.168.0.11   webserver

第二种:修改 MySQL 的配置,在 [mysqld] 段加入 skip-name-resolve

[mysqld]
...
skip-name-resolve

重启 MySQL 使之生效。

以上两种方法都可以解决变慢的问题,不过我建议还是用第一种方法。因为第二种方法的话就不能在 MySQL 的授权表中使用主机名了而只能用ip格式了。