这几天把网站的 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格式了。