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

解决Ubuntu 17.04安装MySQL服务时出现的InnoDB内存分配失败问题,通过添加swapfile并设置权限来避免内存不足导致的服务启动错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题现象:
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值