MySQL Warning IP address could not be resolved
警告与解决方式
今天在服务器上看了下 MySQL 的错误日志,发现有大量的警告信息 [Warning] [MY-010055] [Server] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known
,经过查找,了解到是 DNS 反解析错误。
因为 MySQL 数据库服务器没有配置 /etc/hosts
,也没有 DNS 服务,导致了 mysqld 反向解析 IP 对应的域名失败。
解决方式可以通过添加 skip_name_resolve
配置到 /etc/my.cnf
中来跳过 DNS 反解析。
不过需要了解的是,这种解决方式会使得 MySQL 中的 mysql.user
用户表里的 HOST
列不能使用域名,只能使用 localhost 或者 IP 地址,否则无法登录。
所以在这么做之前,最好做个检查。
1 | SELECT user,host FROM mysql.user WHERE host <> 'localhost' AND host RLIKE '[a-z]'; |
确认没有问题之后,打开 /etc/my.cnf
文件
1 | [mysqld] |
然后重启 mysqld 服务 service mysqld restart
即可。
参考链接
- https://www.cnblogs.com/digdeep/p/4906423.html
- https://serverfault.com/questions/393862/mysql-warning-ip-address-could-not-be-resolved
- https://www.percona.com/blog/2008/05/31/dns-achilles-heel-mysql-installation/