今天下午对虚机环境下,重启虚机后,平台访问变慢问题进行复现:
复现步骤:
1. 在可以连接外网环境下,多次关闭虚机/启动,平台访问始终很快,没有复现访问慢问题。
2. 在存局域网下,关闭虚机/启动,复现了平台访问很慢的场景,访问数据库ip改为:127.0.0.1后,访问正常。
问题解决:
在试验环境下,查看mysql访问慢的原因:
1. 用笔记本直连,在笔记本用客户端连接mysql,发现也是很慢,
在mysql服务端配置里,添加配置: skip-name-resolve=1,重启服务,访问正常。
网络资料(
skip-name-resolve
)
:
查阅mysql官方网站得知,这属于官方一个系统上的特殊设定,就把他当成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反查功能。
或者修改mysql配置文件。
编辑/etc/my.cnf
在[mysqld]段中加入
skip-name-resolve
重启mysql
在/etc/my.cnf 的配置文件中加入如下一句,禁用DNS反响解析,就能大大加快MySQL连接的速度。