Cannot allocate memory for the buffer pool

之前因为网站隔一段时间之后报错,具体原因是数据库出错了,无法正常运行,当时也没有多想就设置了一个任务每天早上6点重启mysql。这样持续了一周左右的时间,没有出现任何问题,网站运行良好。但是就在今天打开网站时,出现了无法访问的情况。访问数据库,出现无法连接的情况,重启报错。错误信息如下:

mysql重启报错

查看了mysql的错误日志信息,提示信息如下:

InnoDB: mmap(137428992 bytes) failed; errno 12

[ERROR] InnoDB: Cannot allocate memory for the buffer pool

[ERROR] InnoDB: Plugin initialization aborted with error Generic error

[ERROR] Plugin 'InnoDB' init function returned error.

[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

[ERROR] Failed to initialize builtin plugins.

[ERROR] Aborting

百度简单解释就是没法为mysql的buffer pool分配128M的内存,内存不足引起的。查找资料后发现,原来这个参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲。我的服务器只有512M内存,所以这个参数开始为索引分配缓存的时候把mysql弄崩溃了。

修改innodb_buffer_pool_size参数,默认是128MB,现在更新为50MB,重启mysql,没有报错,mysql运行正常,网站运行正常

innodb_buffer_pool_size = 50M

本文作者:肖云

本文链接:http://www.d7dd.com/2021/8/mysql-memory-buffer-pool

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

urlopen error "SSL: CERTIFICATE_VERIFY_FAILED" certificate verify failed
0 条评论
已登录,注销 取消