0%

mariadb异常 mysqld: Out of memory Centos 创建swap分区解决(转载)

最近几天,服务器异常,常报500错误,数据库无法连接,网站不能访问。查看mariadb日志,打开: /var/log/mariadb/mariadb.log

160915 19:44:22 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160915 19:44:22 [ERROR] Plugin 'InnoDB' init function returned error.
160915 19:44:22 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160915 19:44:22 [ERROR] mysqld: Out of memory (Needed 128917504 bytes)
160915 19:44:22 [ERROR] mysqld: Out of memory (Needed 96681984 bytes)
160915 19:44:22 [ERROR] mysqld: Out of memory (Needed 72499200 bytes)

是内存不够,购买是阿里云主机1G内存,不够用了,可以创建swap分区来解决。

创建4g swap分区

1
2
`dd` `if``=``/dev/zero` `of=``/var/swap` `bs=1024 count=4194304 `
`mkswap ``/var/swap`

激活swap分区

1
`swapon ``/var/swap`

设置自动挂载

1
2
`vi` `/etc/fstab`
`/var/swap`               `swap                    swap    defaults        0 0`

重启服务器

1
`shutdown` `-r now`

查看内存使用状态

1
`free` `-m`
1
2
3
`              ``total        used        ``free`      `shared  buff``/cache`   `available`
`Mem:            991         347         261          40         382         382`
`Swap:          4096           0        4096`

创建swap分区成功,再没因内存不够而maridb自动关闭了。

坚持技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道