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`發現日志內報錯信息如下:

 

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

 

六石小說 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM