WordPress报错连接数据库错误(InnoDB: mmap(137428992 bytes) failed; errno 12 )解决方案

博客刚开通没几天,有一天早上,忽然发现网站挂了,登录到服务器检查一下,发现是MySQL的问题,mysql不明原因的挂掉了,利用

1

systemctl status mysqld

命令查看报错信息,基本没什么作用,所以还是需要看日志,用于是使用centos上的yum安装的mysql,日志默认在/var/log/mysqld.log

打开mysqld.log查看启动时的报错信息如下:

 

最关键的在这一句:

1

[ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12

初步怀疑是内存不够,但是,经过查看日志和确认mysql配置文件,已经给mysql分配了128M内存,不能是内存不够。

我们知道,linux中的内存除了memory,还有swap,也有可能是swap不够了,所以使用命令

1

free

查看可用内存,竟然发现swap空间是0,这时想起来,这台主机是新申请的,没有分配swap,使用下面命令分配1G大小的swap空间:

首先划分1G空间,用于swap

1

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

接下来创建swap区

1

sudo mkswap /swapfile

最后启用swap

1

sudo swapon /swapfile

 

创建完swap之后,可以再使用free命令查看内存情况

32B9C76C-B469-4802-A75C-F801863AFFDC.png

可以看到,swap区已经有1G大小了

再次启动mysql

1

systemctl start mysql

可以看到,mysql已经成功启动了

WX20170509-105452@2x.png

Leave a Comment

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