0

0

MySQL5.6关闭DNS查询_MySQL

php中文网

php中文网

发布时间:2016-05-30 17:10:14

|

1994人浏览过

|

来源于php中文网

原创

MySQL 5.6关闭DNS查询

mysql服务器的日志记录中看到如下的警告:

2015-11-09 08:37:02 1489 [Warning] IP address '104.223.72.XXX' has been resolved to the host name '104.223.72.XXX.static.quadranet.com', which resembles IPv4-address itself.

分析:104.223.72.XXX经查询,是美国的IP地址,国内有XX防火墙阻拦,DNS解析不了很正常。由于MySQL服务器在内存中维持了一个Host缓存,用于存储客户端的信息,包括:IP地址、Host主机名、错误信息等。对于非本地的TCP连接,MySQL服务器都会查询此缓存。对于使用本地环回地址(比如:127.0.0.1或者::1)的TCP连接、或者是使用Unix套接字文件的TCP连接、命名管道的TCP连接、共享内存的TCP连接,都不会使用Host缓存。

注:Loopback,本地环回接口(或地址),亦称回送地址。此类接口是应用最为广泛的一种虚接口,几乎在每台路由器上都会使用。在Windows系统中,采用127.0.0.1作为本地环回地址。

对于每一个新的客户端连接,MySQL服务器使用客户端的IP地址进行检索,查看客户端的主机名是否在Host缓存中。如果Host缓存中不存在,MySQL服务器会尝试解析主机名。首先,MySQL服务器会解析主机名对应的IP地址,并与客户端的原始IP地址进行比较,确保是同一个IP地址。然后MySQL服务器把这些信息写入Host缓存中。如果Host缓存已满,MySQL服务器会使用最近最少使用算法,删除部分缓存数据。

MySQL服务器执行主机名解析使用了线程安全的gethostbyaddr_r()函数调用和gethostbyname_r()函数调用,只要操作系统支持。否则,执行查找的线程会锁定一个互斥变量,再调用gethostbyaddr()函数和gethostbyname()函数。在这种情况下,如果主机名不在缓存中,也没有别的线程能解析主机名,必须等到互斥变量被释放后才可以。

MySQL服务器使用Host缓存主要有几个目的:

1)通过缓存的IP和主机名的对应关系,避免了对于客户端的每个连接都要做DNS查询。相反,对于给定的主机,只需针对首次连接进行DNS查询。

2)Host缓存中还保护了连接过程中发生的错误信息。有些错误可能是“阻塞”信息,对于给定的客户端如果连续出现这种信息,那么服务器会阻塞来自此客户端的进一步的连接。MySQL的系统变量max_connect_errors就描述了这种情况,意思是MySQL服务器在阻塞客户端连接之前允许客户端连接错误的次数。

要解除已经被阻塞的主机,需要刷新Host缓存,执行语句:

VIVA
VIVA

一个免费的AI创意视觉设计平台

下载
mysql> flush hosts

或者是在Shell环境下执行:

# mysqladmin flush-hosts

Host缓存在MySQL中是默认开启的,要关闭Host缓存,可以在启动MySQL时添加–skip-host-cache参数选项。

要禁用DNS主机名查找,可以在启动MySQL时添加–skip-name-resolve参数选项。在这种情况下,MySQL服务器会只使用IP地址来匹配连接。如果DNS查询很慢,或者是客户端非常多,那么关闭DNS查询可以改进MySQL服务器的性能。

解决办法:

修改my.cnf配置文件,找到[mysqld]处,添加:

skip-name-resolve

再重启MySQL服务。

证明:

mysql> show variables like "%skip%";
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| skip_external_locking  | ON    |
| skip_name_resolve      | ON    |
| skip_networking        | OFF   |
| skip_show_database     | OFF   |
| slave_skip_errors      | OFF   |
| sql_slave_skip_counter | 0     |
+------------------------+-------+
6 rows in set (0.00 sec)

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号