近日在数据库方面,发现异常的联机状况该状况在 mysql 下指令
Show Processlist;
可以看到问题该问题如下; : 3436942 : unauthenticated user : 192.168.0.52:49607 : : Connect : : login : : 3436943 : unauthenticated user : 192.168.0.52:49608 : : Connect : : login :
会有非常多的 unauthenticated user 尝试做登入使用 mysql 的情况当这情况在无限制的发生时,就会照成系统的停顿在经过多方测试,以及询问官方原厂的响应下发现这属于官方一个系统上的特殊设定,亦可称呼他为 mysql 的 bug 不管连结的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查mysqld 会尝试去反查 IP -> dns ,由于反查解析 过慢,无法应付快速多量的查询 反查是上层 ISP 所掌控,并不是我们可以解决及要求的在知道问题的症结点后,要解决这个问题就有相对应的方法其方法分为两个步骤,
第一是开启 Mysqld 的时候加入特定的参数启动
第二就是修改 mysql 的联机设定等,如下所示
启动参数; with --skip-name-resolve =>这样就可以关闭反查动作
更改 my.cnf;加强以下设定
[mysqld]
datadir=/services/mysql/
socket=/tmp/mysql.sock
port=3306
set-variable = key_buffer_size=64M
set-variable = max_connections=1024
set-variable = interactive_timeout=30 ------ skip-name-resolve #这样就可以关闭反查动作
[mysqld.server]
user=mysql
basedir=/usr/local
经过以上的设定及重新启动过后,直到现在还没有看到一个 unauthenticated user 的情况发生 。