2435

内存不足导致mysql无法启动

乐果   发表于   2017 年 08 月 09 日 标签:mysql

最近,朋友的博客经常挂,拜托我上去找下原因,最后发现mysql挂了导致的。

手动启动,发现启动不了,查看日志:

130629  5:46:48 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130629  5:46:48 InnoDB: Completed initialization of buffer pool
130629  5:46:48 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130629  5:46:48 [ERROR] Plugin 'InnoDB' init function returned error.
130629  5:46:48 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130629  5:46:48 [ERROR] Unknown/unsupported storage engine: InnoDB
130629  5:46:48 [ERROR] Aborting

从日志中大概能看出内存的问题,百度了一下相关问题,果然是,网上说内存不足导致的,用free命令查看了验证了下,确实如此内存被消耗查不多了,并且系统未分配swap。

于是,解决思路就是增加swap:

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 #增加1G的SWAP进去
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ free
             total       used       free     shared    buffers     cached
Mem:        608476     601432       7044          0        824      88752
-/+ buffers/cache:     511856      96620
Swap:      1048572          0    1048572

但是问题重启系统后,swap又为0了,所以要开机就挂载到swap里去:

vim /etc/fstab,增加一行:

/swapfile              swap                    swap    defaults        0 0

OK,问题至此解决!

乐果   发表于   2017 年 08 月 09 日 标签:mysql

0

文章评论