博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql中的 skip-name-resolve 问题
阅读量:4213 次
发布时间:2019-05-26

本文共 769 字,大约阅读时间需要 2 分钟。

    今天早上开发那边发现mysql连接很慢,登陆到服务器上查看服务器日志都是正常的,无可疑记录,刚刚还好好的,怎么突然出现这个问题,于是登陆到mysql服务器上,查看下进程,发现有很多这样的连接:
218 | unauthenticated user | 192.168.10.6:44500 | NULL  | Connect | NULL | login | NULL
219 | unauthenticated user | 192.168.10.6:44501 | NULL  | Connect | NULL | login | NULL  
........
放狗,放狗。。。
原因是由于mysql对连接的客户端进行DNS反向解析。
有2种解决办法:
1,把client的ip写在mysql服务器的/etc/hosts文件里,随便给个名字就可以了。
2,在 my.cnf 中加入 –skip-name-resolve 。 
对于第一种方法比较笨,也不实用,那么 skip-name-resolve 选项可以禁用dns解析,但是,这样不能在mysql的授权表中使用主机名了,只能使用IP。
我理解mysql是这样来处理客户端解析过程的,
1,当mysql的client连过来的时候,服务器会主动去查client的域名。
2,首先查找 /etc/hosts 文件,搜索域名和IP的对应关系。
3,如果hosts文件没有,则查找DNS设置,如果没有设置DNS服务器,会立刻返回失败,就相当于mysql设置了skip-name-resolve参数,如果设置了DNS服务器,就进行反向解析,直到timeout。
有一点不明白,为什么连接mysql服务器内网的ip地址也要进行DNS反向解析,而这时候DNS解析返回给mysql的是什么呢?
望高手解答。
                

转载地址:http://tafmi.baihongyu.com/

你可能感兴趣的文章
spark-shell到sparkcontext的过程
查看>>
每个cpu有一个16byte的中断栈
查看>>
vdso支持四个系统调用
查看>>
sparkcontext中环境变量的读取和保存
查看>>
signal的优先级高于系统调用
查看>>
spark应用程序的提交
查看>>
spark job提交
查看>>
spark job提交2
查看>>
spark job提交3
查看>>
spark job提交4
查看>>
spark job提交5
查看>>
spark job提交6
查看>>
veth pair
查看>>
git 删除远程tag
查看>>
spark job提交7
查看>>
基于当前系统制作docker镜像
查看>>
没有loop 设备
查看>>
dstat的插件
查看>>
vhe
查看>>
如何check kabi 是一致的
查看>>