一台unibilling机器前几天突然负载变重. 在top中发现cpu被大量占用. agi程序运行的很慢,并出现僵尸进程. 其实当时只有50个左右的并发呼叫. 远远达不到正常水准. 重新启动机器问题也没得到解决. 非常奇怪.
考虑到在top中看到mysqld占用的资源最多,就进入mysql控制台,运行 show processlist命令, 发现某进程的信息很特殊:
User "unauthenticated user" Command "connect" State "reading from net"
难道是黑客从internet上攻击我的机器? 显然不是, 因为Host那一列显示的是”localhost”.
没办法. 在google上一查找,竟发现若干人遇到过该问题. 也不能算是mysql的bug,因为通过更改配置文件 /etc/my.cnf即可解决.
具体地讲,在mysqld那一栏中添加 skip-name-resolve
[mysqld]
skip-name-resolve
注意, skip-name-resolve可以禁用dns解析,但是,这样不能在mysql的授权表中使用主机名了,只能使用IP. 以前创建mysql用户是若用的是localhost现在则需要用127.0.0.1来代替在grant语句中执行一下添加该用户.
然后, 重新启动mysqld.
觉得文章有用?立即:
和朋友一起 共学习 共进步!