MySQL的error log 出现大量的 DNS反解析错误。

DNS解析是指,将 域名解析成ip地址;

DNS反解析是指,将IP地址反解析成域名;

Version: '5.5.40-log'  socket: '/tmp/mysql.sock'  port:   MySQL Community Server (GPL)
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
1 :: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Temporary failure in name resolution
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Temporary failure in name resolution
:: [Warning] IP address 'xxx.xxx.xx.xxx' has been resolved to the host name 'xxx.xxx.xx.xxx.broadxxxxx.com.cn', which resembles IPv4-address itself.
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known
:: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known

出现该错误的原因:

MySQL 数据库服务器没有配置 /etc/hosts,也没有DNS服务,导致mysqld线程解析IP对应的主机名时,解析失败。

解决方法:

使用--skip-name-resolve 参数禁用DNS的主机名解析功能,禁用该功能后,在MySQL授权表里面,你只能使用IP地址。

所以我们修改MySQL的my.cnf中的参数:

[mysqld]
skip_host_cache
skip-name-resolve=
could not be resolved: Temporary failure in name resolution 的警告,可以使用 skip_host_cache 来搞定;
而 could not be resolved: Name or service not known 的警告,可以通过 skip_name_resolve=1 来搞定。禁止了域名解析,显然就不会出该警告了。

注意:skip_host_cache=1 会报错。直接 skip_host_cache 或者 skip-host-cache 就行了。

修改之后,需要重启。

注意:mysql中的权限表,就不能使用域名了,必须使用IP地址来设置。

msyql文档:

--skip-name-resolve

Do not resolve host names when checking client connections. Use only IP addresses. If you use this option, all Host column values 
in the grant tables must be IP addresses or localhost. See Section 8.12.6.2, “DNS Lookup Optimization and the Host Cache”. Depending on the network configuration of your system and the Host values for your accounts, clients may need to connect using an
explicit --host option, such as --host=localhost, --host=127.0.0.1, or --host=::. An attempt to connect to the host 127.0.0.1 normally resolves to the localhost account. However, this fails if the server is run
with the --skip-name-resolve option, so make sure that an account exists that can accept a connection. For example, to be able to connect as root using --host=127.0.0.1 or --host=::, create these accounts: CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
--skip-host-cache

Disable use of the internal host cache for faster name-to-IP resolution. In this case, the server performs a DNS lookup every time 
a client connects. See Section 8.12.6.2, “DNS Lookup Optimization and the Host Cache”. Use of --skip-host-cache is similar to setting the host_cache_size system variable to , but host_cache_size is more flexible
because it can also be used to resize, enable, or disable the host cache at runtime, not just at server startup. If you start the server with --skip-host-cache, that does not prevent changes to the value of host_cache_size, but such changes
have no effect and the cache is not re-enabled even if host_cache_size is set larger than .

其实,按照上面的介绍,如果我们启用了 skip-name-resolve=1, 那么因为禁止了 ip 和 hostname 之间的解析,那么就没有必要启用 skip-host-cache 了。启用的话,可能会减少一点点内存的占用吧?

--------------------------------分割线---------------------------------------

Mysql域名解析(转自:http://www.jb51.net/article/70893.htm):

当一个新的客户端尝试跟mysqld创建连接时,mysqld产生一个新线程来处理这个请求。新线程会先检查请求建立连接的主机名是否在Mysql的主机名缓冲中,如果不在,线程会尝试去解析请求连接的主机名。

解析的逻辑如下:

a. Mysql线程通过gethostbyaddr()把获取的IP地址解析成主机名,然后通过gethostbyname()把获取的主机名解析成IP地址,保障主机名和IP地址对应关系的准确

b. 如果操作系统支持使用安全进程的gethostbyaddr_r()和gethostbyname_r() 调用,Mysqld线程可以用它俩来优化主机名解析;

c. 如果操作系统不支持安全线程调用,Mysqld进程先做一个互斥锁,然后调用gethostbyaddr()和gethostbyname()解析主机 名。此时,在第一个进程释放掉主机名缓冲池的主机名之前,其它进程无法再次解析这个主机名; <-------MySQL手册里面在此处说的host name ,意思应该是指同一个IP地址和对应的第一个主机名关系。

在启动mysqld进程是,可以使用 --skip-name-resolve 参数禁用DNS的主机名解析功能,禁用该功能后,在MySQL授权表里面,你只能使用IP地址。

如果你所处环境的DNS非常慢 或者 有很多主机, 你可以通过禁用DNS解析功能--skip-name-resolve 或者 提高 HOST_CACHE_SIZE大小 来提升数据库的响应效率。

禁用主机名缓冲的发方法: 使用--skip-host-cache 参数; 刷新主机名缓冲区: 执行 flush hosts 或者执行mysqladmin flush-hosts;

=============================

启用 skip_name_resolve=1 之后,可能会有新的Warining:

[Warning] 'proxies_priv' entry '@ root@localhost.localdomain' ignored in --skip-name-resolve mode.

解决方法,删除表 mysq.proxies_priv 中值为 localhost.localdomain 的行

参见:http://blog.itpub.net/14184018/viewspace-1061224/

MySQL [Warning]: IP address 'xxxx' could not be resolved: Name or service not known的更多相关文章

  1. IP address could not be resolved: Name or service not known

    [root@test ~]# /usr/local/mysql/bin/mysqld2018-08-05T07:00:33.647509Z 0 [Warning] [MY-011070] [Serve ...

  2. IP address could not be resolved: Temporary failure in name resolution

    今早发现mysql日志中有非常多例如以下的警告: 140724 18:41:25 [Warning] IP address '172.16.18.217' could not be resolved: ...

  3. mysql could not be resolved: Name or service not known

    问题: mysql DNS反解:skip-name-resolve 错误日志有类似警告: 1.120119 16:26:04 [Warning] IP address '192.168.1.10' c ...

  4. ERROR 2003 (HY000): Can't connect to MySQL server on 'ip address' (111)的处理办法

    远程连接mysql数据库时可以使用以下指令 mysql -h 192.168.1.104 -u root -p 如果是初次安装mysql,需要将所有/etc/mysql/内的所有配置文件的bind-a ...

  5. ubuntu使用git的时:Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.

    1:问题现象: hlp@hlp:~/code/github_code/catch_imooc1$ git push origin master Warning: Permanently added t ...

  6. IP address '121.41.35.30' could not be resolved: Name or service not known解决方法

    IP address '121.41.35.30' could not be resolved: Name or service not known解决方法 添加如下 然后重启 即可解决<pre ...

  7. [转]How to convert IP address to country name

    本文转自:http://www.codeproject.com/Articles/28363/How-to-convert-IP-address-to-country-name   Download ...

  8. 错误RSA host key for [ip address] has changed and you have requested strict checking.

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS ...

  9. 解决办法: RSA host key for [ip address] has changed and you have requested strict checking.

    在服务器重装后想要远程连接服务器,报错如下: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE ...

随机推荐

  1. sina sae开发中出现的问题

    都是些小问题,但既然出现了,下次就该避免! 网站加载速度慢: 1.安装 Disable Google Fonts 字体插件即可  2.删代码 http://jingyan.baidu.com/arti ...

  2. 《Java4android》视频学习笔记——面向对象的应用(一)

    ---恢复内容开始--- 有一台HP打印机需要一个程序来实现开机,打印,关机这三个功能 class HPprinter { void open(){ System.out.println(" ...

  3. 【局部特征】ASIFT

    由于相机正面白摄物体时,相机的光轴方向可能发生变化,带来扭曲.而SIFT算法虽具有完全的尺度不变性,但不具有完全的仿射不变性,对拍摄角度发生大角度空间变化的图像特征提取有一定的局限性.ASift通过模 ...

  4. css知多少(4)——解读浏览器默认样式

    上一节<css知多少(3)——样式来源与层叠规则>介绍了样式的五种来源,咱们再通过一张图回顾一下. 对于上面的三层,咱们大概都比较熟悉了.下面的两层中,用户自定义样式一般也就是改一改字号大 ...

  5. 如何在没有安装微软Excel环境下操作Excel文件?

    在以前接触的项目中,由于很多客户对微软Excel的操作比较熟练,客户经常要求系统支持对Excel文件的读写.用.NET传统方法对Excel进行读写时,往往会涉及到不同版本兼容的问题,导致在本地测试一切 ...

  6. 关于HTML面试题汇总之H5

    一.H5有哪些新特性,移除了哪些元素?如何处理h5新标签的浏览器兼容性问题,如何区分html和html5 1. html5不在是SGL(通用标记语言)的一个子集,而包含了:图像.位置.存储.多任务等功 ...

  7. 向 Web 开发人员推荐35款 JavaScript 图形图表库

    图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等.可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web 应用和项目的可靠性. 在这篇文章中,我们收集了3 ...

  8. 使用XmlHelper添加节点C#代码

    接着上一篇:http://keleyi.com/a/bjac/ttssua0f.htm在前篇文章中,给出了C# XML文件操作类XmlHelper的代码,以及使用该类的一个例子,即使用XmlHelpe ...

  9. [js开源组件开发]query组件,获取url参数和form表单json格式

    query组件,获取url参数和form表单json格式 距离上次的组件[js开源组件开发]ajax分页组件一转眼过去了近二十天,或许我一周一组件的承诺有了质疑声,但其实我一直在做,只是没人看到……, ...

  10. atitit.数据验证--db数据库数据验证约束

    atitit.数据验证--db数据库数据验证约束 1. 为了加强账户数据金额的安全性,需要增加验证字段..1 2. 创建帐户1 3. 更改账户2 4. ---code3 5. --fini4 1. 为 ...