博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql报错mmap(137428992 bytes) failed; errno 12,Cannot allocate memory for the buffer pool
阅读量:7281 次
发布时间:2019-06-30

本文共 2039 字,大约阅读时间需要 6 分钟。

mysql以`systemctl start mysqld.service`的方式启动一段时间后发现突然无法启动,尝试重新启动也不能解决问题,排查问题时,先后通过`systemctl status mysqld.service`和`journalctl -xe` 命令查看问题,无所得.然后查看`/var/log/mysqld.log`发现日志内报错信息如下:

 

2019-02-07T00:33:21.731341Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 1
28M
2019-02-07T00:33:21.731439Z 0 [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
2019-02-07T00:33:21.731450Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2019-02-07T00:33:21.731464Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-02-07T00:33:21.731477Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-02-07T00:33:21.731483Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-02-07T00:33:21.731489Z 0 [ERROR] Failed to initialize builtin plugins.
2019-02-07T00:33:21.731493Z 0 [ERROR] Aborting

 

 

网上查阅资料,有人说是 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`无法分配成功,降低其配置即可以。

`

 

问题2: Changed limits: max_open_files: 5000 (requested 5010) 

 使用  ` ulimit -n `命令是否 linux系统做了限制; 

查看`vim /usr/lib/systemd/system/mysqld.service`下的`LimitNOFILE `看是否有5000限制,调整成65535即可。

 参考自 [这里](http://blog.itpub.net/20893244/viewspace-2152685/) 

 

 问题3: 阿里云服务器 mysql经常自动停止挂掉重启的完美解决方式

 解决: [这里](https://blog.csdn.net/xuz0917/article/details/79100834)

         [这里](https://jingyan.baidu.com/article/da1091fb032cad027949d64e.html) 

 

 

问题4:  IP address 'x.x.x.x' could not be resolved: Name or service not known

解决: [这里](https://www.jb51.net/article/70893.htm)

     `my.cnf`里配置`skip-name-resolve

`

问题5:  Got error: 1045: Access denied for user 'root'@'localhost' (using password:

解决: `my.cnf`里去掉`skip-name-resolve

 

 

转载于:https://www.cnblogs.com/zhaowinter/p/10354620.html

你可能感兴趣的文章
【SVN Working copy is too old (format 10, created by Subversion 1.6)】解决方式
查看>>
ros与下位机通信常用的c++ boost串口应用--22
查看>>
Codeforces Beta Round #6 (Div. 2 Only) D. Lizards and Basements 2 dfs
查看>>
adbWireless 简单教程
查看>>
Hadoop Version History and Feature
查看>>
html5手机网站需要加的那些meta/link标签,html5 meta全解
查看>>
Codeforces Beta Round #9 (Div. 2 Only) B. Running Student 水题
查看>>
Educational Codeforces Round 12 F. Four Divisors 求小于x的素数个数(待解决)
查看>>
PHPer书单
查看>>
沉浸式导航栏
查看>>
Python中docstring文档的写法
查看>>
SSH配置文件和SSM配置文件的写法
查看>>
获取图片中感兴趣区域的信息(Matlab实现)
查看>>
NPO与X7R、X5R、Y5V、Z5U神马的有啥区别
查看>>
掌握 Linux 调试技术
查看>>
安装第三方模块方法和requests
查看>>
Log Parser 2.2 + Log Parser Lizard GUI 分析IIS日志示例
查看>>
不错的linux下通用的java程序启动脚本(转载)
查看>>
[LeetCode] Frog Jump 青蛙过河
查看>>
EF架构随心所欲打造属于你自己的DbModel【转】
查看>>