博客刚开通没几天,有一天早上,忽然发现网站挂了,登录到服务器检查一下,发现是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命令查看内存情况
可以看到,swap区已经有1G大小了
再次启动mysql
1 |
systemctl start mysql |
可以看到,mysql已经成功启动了