错误分析:
早上起来打开网站,发现不能访问了,报错显示:Error establishing a database connection,不用说,肯定又是MySQL数据库宕了...
赶紧火急火燎的登上服务器,
# ps -ef |grep mysql一看,果然是。
尝试重新启动MySQL,
# service mysqld restart,失败,
提示: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
日志尾部看到有如下报错信息:[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,不过这个操作要谨慎,建议做好功课再动手了。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。