最近项目使用到mysql,在linux上安装rpm格式的mysql,前几天访问正常,但今天突然发现数据库访问缓慢,在网上搜索过后,发现可以在/etc/my.cnf文件中添加“skip-name-resolve”来解决。
但我在/etc目录下无法找到my.cnf文件,再经过搜索,发现解决方案
用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即可。
找到[mysqld],添加“skip-name-resolve”
重启,问题解决。
原因:
MySQL在处理新的线程连接请求时,会尝试进行DNS解析,如果在host cache和Hosts里找不到,处理起来就会很慢,因此最直接简便的方法就是禁用该反向解析功能