centos7 mysql failed_Centos7 MySQL 错误 InnoDB: Cannot allocate memory for the buffer pool

这篇博客讲述了在 CentOS7 上遇到 MySQL 由于内存不足导致 InnoDB 缓冲池初始化失败的问题。日志显示内存和 Swap 分配不足,解决方案包括增加物理内存或创建 Swap 分区,并提供了调整配置文件和设置 Swap 的详细步骤。
摘要由CSDN通过智能技术生成

最近跑博客的小机总出现 Mysql 挂掉的情况

日志如下:

2020-03-29T12:47:50.856945Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M

2020-03-29T12:47:50.942730Z 0 [ERROR] InnoDB: mmap(139722752 bytes) failed; errno 12

2020-03-29T12:47:50.942773Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

2020-03-29T12:47:50.942783Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error

2020-03-29T12:47:50.942797Z 0 [ERROR] Plugin 'InnoDB' init function returned error.

2020-03-29T12:47:50.942803Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

2020-03-29T12:47:50.942811Z 0 [ERROR] Failed to initialize builtin plugins.

2020-03-29T12:47:50.942816Z 0 [ERROR] Aborting

查看内存,发现内存2G 应该是足够用的。再看 Swap,`total`为0

[root@4wei_cn log]# free -m

total used free shared buffers cached

Mem: 2005 1937 68 131 0 138

-/+ buffers/cache: 1799 206

Swap: 0 0 0

解决的办法是给小机加点内存,如果或者加点 Swap。加大内存可以在配置文件中上调innodb buffer.

[mysqld]

pid-file=/var/run/mysqld/mysqld.pid

log-error=/var/log/mysqld.log

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

thread_stack = 512k

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

skip-character-set-client-handshake = true

innodb_buffer_pool_size=512M

max_connections=100

max_allowed_packet=10M

[client]

default-character-set=utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

如果内存扩容比较复杂,或者考虑使用 Swap 也可以。

swapon -s

fallocate -l 4G /swapfile

chmod 600 /swapfile

mkswap /swapfile

swapon /swapfile

swapon -s

free -m

最后呢,添加开机启动挂载 swap,修改 `/etc/fstab` 添加行

/swapfile swap swap defaults 0 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值