171.mysql中的 skip-name-resolve 问题
2020-02-17 11:56
302 查看
mysql连接很慢,登陆到服务器上查看服务器日志都是正常的,无可疑记录,登陆到mysql服务器上,查看下进程,发现有很多这样的连接:原因是由于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,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。添加skip-name-resolve以后就跳过着一个过程了。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 172.MySQL的一些操作
- 177.MySQL基本操作
- 178.MySQL基本函数
- MYSQL的存储过程详解与实际应用
- MySQL导入本地sql文件出错
- 【mysql】PHP面试题 -索引总结
- mac配置mysql环境
- MySQL性能优化的最佳20+条经验
- 【Linux】CentOS7 C#开发环境搭建笔记(6、Mysql安装、配置)
- 【Linux】CentOS7 C#开发环境搭建笔记(7、Navicat for MySQL安装、配置)
- MySql简单查询
- Ubuntu Navicat for MySQL安装及永久使用
- (转载)Mysql安装问题处理
- Mysql超详细安 4000 装过程,附上免安装包和安装过程问题处理
- MySQL实现累加功能
- MySQL之状态变量Aborted_connects与Aborted_clients对比
- mysql报错显示1045 access denied for user 'root'@'localhost' using password yes
- 改mysql的用户密码
- StudyNotes-sqlite3&pymysql
- Mysql 8 安装与删除