未命名设计(1).jpg

最近遇到一个问题,当对Mysql发起大量请求的时候,Mysql会失去响应,一个原因是因为我的上一篇文章,MySQL: ERROR 1040: Too many connections另一个原因就是如下的原因,也算是Mysql让人烦的原因。我们一起来看一下:

为什么Mysql会进行DNS解析?

Mysql数据库收到一个网络连接后,首先拿到对方的IP地址,然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名。用主机名在权限系统里面进行权限判断。

进行DNS解析为什么会出错?

因为当客户端发起超过百万的连接时,Mysql对于每个连接都会进行反DNS解析得到主机名这样,反向DNS解析是耗费时间的,有可能让用户感觉起来很慢。甚至有的时候,反向解析出来的主机名并没有指向这个IP地址,这时候就无法连接成功了。

可以在配置文件里面禁止Mysql进行反向DNS解析,只需在my.cnf的[mysqld]段落中加入如下行即可:

skip-name-resolve (windows与linux下一样的)
只不过linux是my.cnf文件,windows是my.ini文件

文章来源于互联网:Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)

发表评论