mysql执行show processlist出现”unauthenticated user”

一台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.

觉得文章有用?立即: 和朋友一起 共学习 共进步!

猜您喜欢

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>