最近排查mysql执行效率的时候,查看mysql的实时日志大量一直显示190526 8:05:55 [Warning] IP address ‘XXXXXX’ could not be resolved: Name or service not known,后面查log文件,每天包含该句日志达到几千万条,严重的浪费了log日志空间和效率。
下面我一起来看看其中的原因:
mysql日志显示[Warning] IP address ‘xxxx’ could not be resolved: Name or service not known,(不知道这样的主机)那是因为mysql默认会反向解析DNS,对于访问者Mysql不会判断是hosts还是ip都会进行dns反向解析,这个类似一个监控功能,频繁地查询数据库和权限检查,这大大增加了数据库的压力,导致数据库连接缓慢,严重的时候甚至死机,出现“连接数据库时出错”等字样。
解决办法:禁用dns反查即可
**
找不到不到配置文件my.cnf处理方法:
**
进入/etc 找到mysql的配置文件my.cnf(linux环境下)或者my.ini(windows环境下)进行编辑加入如下一行即可:
用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在点有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL,
解决方法,只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可