2018-04-15 10:43:22
来 源
中存储网
MySQL
Mysql错误:start request repeated too quickly for mysqld.service,日志看到无法启动的原因是内存不够了,无法分配给mysql的buffer pool。

错误分析:

早上起来打开网站,发现不能访问了,报错显示:Error establishing a database connection,不用说,肯定又是MySQL数据库宕了...

赶紧火急火燎的登上服务器,

# ps -ef |grep mysql一看,果然是。

尝试重新启动MySQL,

# service mysqld restart,失败,

mysql启动失败报错start request repeated too quickly for mysqld.service

提示:Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl  -xe" for details.

按图索骥,用提示的systemctl命令查看一下:

#systemctl status mysqld.service

提示:start request repeated too quickly for mysqld.service,

晕,哥虽然英文不好,但也清清楚楚知道这是说“对mysqld服务的重复请求太快太频繁了”,不懂为什么就快了...,

没关系,去看日志:

#vi /var/log/mysqld.log

mysql错误日志查看方法

日志尾部看到有如下报错信息:[ERROR] InnoDB: Cannot allocate memory for the buffer pool.

这意思是说无法给buffer pool分配内存。明白了,是因为内存不够了,无法分配给MySQL,当然也就无法正常启动啦。

解决方法:

1、扩大内存容量,不过对于我这不太现实,因为手里有10多台ECS,成本已经很高了;

2、在my.cnf文件中,重新设置innodb_buffer_pool_size参数的值,如果是1GB内存的服务器,建议不要超过128M;

3、查看系统中那些进程大量占用了内存,干掉这些进程,然后重启MySQL服务。

总结:

Wordpress 使用的是InnoDB引擎,对内存的消耗比较大,所以如果条件允许还是为你的WP环境高配点,或着更改不用InnoDB,不过这个操作要谨慎,建议做好功课再动手了。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。