Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)

未命名设计(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文件

推荐阅读更多精彩内容

  • DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能...
    一直在努力hard阅读 2,708评论 4 18
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 1,976评论 0 5
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 2,068评论 0 8
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 14,569评论 2 54
  • 其实早已明白,所以内心是想早点结束这一切的。结局无非两种,我开心或者受伤,但好在她会一直幸福。可能再也没有刻意见面...
    羽泷阅读 52评论 0 0