wordpress网站弹窗插件,wordpress 模板 含数据,网站所有人,北京公司有哪些Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)时间#xff1a;2019-01-19 11:28作者#xff1a;网友投稿MySQL数据库收到一个网络连接后#xff0c;首先拿到对方的IP地址#xff0c;然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名。用主机名…Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)时间2019-01-19 11:28作者网友投稿MySQL数据库收到一个网络连接后首先拿到对方的IP地址然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名。用主机名在权限系统里面进行权限判断。反向DNS解析是耗费时间的有可能让用户感觉起来很慢。甚至有的时候反向解析出来的主机名并没有指向这个IP地址这时候就无法连接成功了。可以在配置文件里面禁止MySQL进行反向DNS解析只需在my.cnf的[mysqld]段落中加入如下行即可skip-name-resolve (windows与linux下一样的)设备在连接mysql时候等待服务器的banner信息需要4s左右影响了Mysql服务的连接速度。通过如下方式进行验证1、Telnet端口验证通过设备和虚拟机(Linux系统)分别Telnet Mysql服务的端口会出现一下现象设备(UAG/SCANNER) telnet后等待Mysql的服务器端回应大概需要等10s左右。[DPtech-Developer-Shell]telnet 10.101.0.206 3308Trying 10.101.0.206...Connected to 10.101.0.206.Escape character is ^].E5.0.67-community-nt-log?Hc95虚拟机(Ubuntu)telnet后立即得到了Mysql服务器的返回[root]~# telnet 10.101.0.206 3308Trying 10.101.0.206...Connected to 10.101.0.206.Escape character is ^].E5.0.67-community-nt-log?D%(;1$],!Zdh?G)6r]YConnection closed by foreign host. //这里耗时很短2、通过程序进行验证具体源代码见附件验证程序源代码源代码基本上是设置了Recv超时后建立socket连接之后接受数据收到后计时并输出。在设备上和虚拟机中的结果分别如下设备[DPtech-Developer-Shell]/tcpclient_mips 10.101.0.1 3306花费时间:19553Recved 68 bytes5.5.2-m2-community%uD3qn)虚拟机[root]tcp_demo# ./tcpclient 10.101.0.1 3306花费时间10525Recved 68 bytes5.5.2-m2-communitd~k~Y;B可以发现设备上大约比Linux服务器多耗时9s其中10秒钟可能是recv本身超时的时间。3、通过不同操作系统进行Telnet验证通过Windows系统和Linux虚拟机、设备分别通过Telnet进行连接尝试通过抓包分析得知只有设备的耗时比较长其他的耗时都比较短。抓包时发现设备中的socket建立之后MYSQL服务器需要发送很多次的NBNS报文后才会传输banner信息而Linux虚拟机和Windows系统的主机在这个过程中都没有出现这个问题。查找了一些资料关于MYSQL NBNS报文的问题Mysql论坛的提问该问题的答复从答复中来看貌似是某些版本的问题临时的解决方案是对Mysql服务器进行配置不启用Named Pipes即 命名管道 功能即可解决这个问题。后经查找相关资料得知远程连接超时可能由于Mysql默认开启了DNS反向解析的缘故每次连接时服务器都尝试解析连接客户端的主机名导致时间比较长。解决方法是在服务器端的my.ini文件中[mysqld]这个节下配置一个skip-name-resolve以关闭Mysql默认开启的DNS反向解析就可以了。再次通过设备和虚拟机或者Windows系统进行Telnet可以发现连接超时的现象明显不存在了。另外通过自己写的C代码进行连接的时候也存在同样的问题修改skip-name-resolve以后实际上就可以发现该问题已经不存在了设备[DPtech-Developer-Shell]/tcpclient_mips 10.101.0.1 3306花费时间:10520Recved 68 bytes5.5.2-m2-community[Z44EG)虚拟机[root]tcp_demo# ./tcpclient 10.101.0.1 3306花费时间:10521Recved 68 bytes5.5.2-m2-community7evE5wyx通过虚拟机Telnet连接另外一个ip 10.101.0.206时候发现速度也比较慢消耗的时间基本上和设备中相当可能是由于虚拟机和宿主主机之前不需要进行反向域名解析或者说是应为系统本身就知道虚拟机IP地址(NAT模式)对应的主机名所以不需要进行DNS反向解析导致在虚拟机中出现了特殊情况。最后得出结论可能这个问题实际上和设备或者虚拟机Linux系统、Windows系统没有多大关系主要由于服务器的反向DNS解析导致该问题。无法从客户端途径去解决也就是说我们设备无法处理这种情形。