mysql报错mmap(137428992 bytes) failed; errno 12,Cannot allocate memory for the buffer pool
Posted 六石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql报错mmap(137428992 bytes) failed; errno 12,Cannot allocate memory for the buffer pool相关的知识,希望对你有一定的参考价值。
mysql以`systemctl start mysqld.service`的方式启动一段时间后发现突然无法启动,尝试重新启动也不能解决问题,排查问题时,先后通过`systemctl status mysqld.service`和`journalctl -xe` 命令查看问题,无所得.然后查看`/var/log/mysqld.log`发现日志内报错信息如下:
网上查阅资料,有人说是 swap不够了,使用`free`命令查看发现空余swap确实为0,但很奇怪,我买的vultr和ecs使用`free`看到的空余的swap都是0,那么为什么vultr部署的mysql服务挂掉了,ecs的没有挂掉呢? 后来使用命令`sudo dd if=/dev/zero of=/swapfile bs=1M count=1024` 增加swap发现不起作用,我的空余swap仍然是0。
又查阅资料,有人说修改`my.cnf`里,将`innodb_buffer_pool_size` 注释打开,然后重启服务,发现还是报错.
后来将我的`my.cnf` 里的`innodb_buffer_pool_size= 64M`调低到64M,然后重启服务,mysql启动成功。
总结: 可能是我的服务器配置较低,使得mysql5.7正常的 `Initializing buffer pool=128`无法分配成功,降低其配置即可以。
`
以上是关于mysql报错mmap(137428992 bytes) failed; errno 12,Cannot allocate memory for the buffer pool的主要内容,如果未能解决你的问题,请参考以下文章
解决Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory报错
mysql error 1197 ,Multi-statement transaction required more than 'max_binlog_cache_size' byt
MySQL测试环境遇到 mmap(xxx bytes) failed; errno 12解决方法
solaris x86安装ORACLE 11.2.0.3软件时因SWAP不足报错: INFO: ld: fatal: mmap anon failed