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

雨中笑 mysql 759热度

昨天发现网站打不开了,有了上次的经验,直接先重启mysql; systemctl start 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.

接着查看mysql日志; tail -100f /var/log/mysqld.log   

发现有个错误警告

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

网上查了下资料说是 服务器没有配置Swap分区的原因,找到解决方案就尝试下


1、先查看内存  输入  free

发现Swap下都是0没有分配

2、创建一个Swap分区大小1GB的交换文件

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

3、将刚创建的交换文件设置为交换分区

mkswap  /swapfile

4、启用交换分区

swapon  /swapfile

5、设置开机自动启用

/swapfile swap swap defaults 0 0

6、查看分区情况    输入  free

total表示总共有1G, free表示剩余的

7、重启mysql 

  systemctl start mysqld.service 


 more

Swap分区是什么

free语句字段意思:


Mem      内存的使用情况。
Swap    交换空间的使用情况;
total      系统总的可用物理内存和交换空间大小;
used     已经被使用的物理内存和交换空间
free       还可用使用物理内存和交换空间的;
shared           被共享使用的物理内存大小。
buff/cache     被buffer 和 cache 使用的物理内存大小。
available        还可被应用程序使用的物理内存大小。


很赞哦!(3)

本文阅读量 2382发布于 2020年5月29日

您的访问IP 18.226.87.83最早于 2024年5月14日 8时43分42秒 阅读过本文 为本文提供了 1 热度 1 阅读量

文章评论
回帖