mysql.service: Main process exited, code=exited, status=1/FAILURE

一、问题现象:
1.服务器(ubuntu 17.04)安装mysql服务时出错。
这里写图片描述
2.查看日志(cat /var/log/mysql/error.log )发现如下错误:

2017-12-27T08:36:46.406267Z 0 [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
2017-12-27T08:36:46.406283Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2017-12-27T08:36:46.406292Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2017-12-27T08:36:46.406310Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2017-12-27T08:36:46.406319Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-12-27T08:36:46.406345Z 0 [ERROR] Failed to initialize plugins.
2017-12-27T08:36:46.406351Z 0 [ERROR] Aborting

二、错误原因:
1.是由于操作系统没有配置swapfile(分配swap空间)导致的。

三、解决方案:
1.执行free -m

total       used       free     shared    buffers     cached
Mem:        604340     587364      16976          0      29260      72280
-/+ buffers/cache:     485824     118516
Swap:            0          0          0

Swap: 0 表示没有 swapfile.

2.添加swapfile

sudo fallocate -l 1g /mnt/1GiB.swap

fallocate size suffixes: g = Giga, m = Mega, etc. (See man fallocate).

If fallocate fails or it not available, you can use dd:

sudo dd if=/dev/zero of=/mnt/1GiB.swap bs=1024 count=1048576

We need to set the swap file permissions to 600 to prevent other users from being able to read potentially sensitive information from the swap file.

sudo chmod 600 /mnt/1GiB.swap

Format the file as swap:

sudo mkswap /mnt/1GiB.swap

Enable use of Swap File

sudo swapon /mnt/1GiB.swap

The additional swap is now available and verified with: cat /proc/swaps

Enable Swap File at Bootup
Add the swap file details to /etc/fstab so it will be available at bootup:

echo '/mnt/1GiB.swap swap swap defaults 0 0' | sudo tee -a /etc/fstab

四、相关文献
1.https://stackoverflow.com/questions/25965638/mysql-fatal-error-cannot-allocate-memory-for-the-buffer-pool/32932601

2.https://help.ubuntu.com/community/SwapFaq

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值