linux設置虛擬內存(swap)解決mysql因內存不足掛掉的故障


mysql錯誤日志顯示:


InnoDB: mmap(137363456 bytes) failed; errno 12
2016-03-01 01:38:42 13064 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2016-03-01 01:38:42 13064 [ERROR] Plugin 'InnoDB' init function returned error.
2016-03-01 01:38:42 13064 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2016-03-01 01:38:42 13064 [ERROR] Unknown/unsupported storage engine: InnoDB
2016-03-01 01:38:42 13064 [ERROR] Aborting

出現這種原因一般是系統內存不足造成的,解決方法是升級系統內存或者添加swap;

解決方法:
1) 在 /etc/mysql/my.cnf 的 mysqld 下增加下面一句:

innodb_buffer_pool_size = 64M

還要設置一下swap分區,因為我的vps是沒有swap分區的,通過fdisk -l 和 1mount 看不到swap的信息,需要手動添加一下。

2) 添加swap分區的步驟:

2.1) dd if=/dev/zero of=/swapfile bs=1M count=1024
2.2) mkswap /swapfile
2.3) swapon /swapfile
2.4) 添加這行: /swapfile swap swap defaults 0 0 到 /etc/fstab

目前已經設置了swap分區,並重啟了mysql,后續觀察一下看看還會不會出現吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM