mysql启动报错【InnoDB: Cannot allocate memory for the buffer pool】

mysql突然连接失败,重启后也报报错,然后去/var/log/mysql/查看error.log,报错信息如下:

InnoDB: mmap(137363456 bytes) failed; errno 12
2018-12-05 10:24:23 721 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2018-12-05 10:24:23 721 [ERROR] Plugin 'InnoDB' init function returned error.
2018-12-05 10:24:23 721 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2018-12-05 10:24:23 721 [ERROR] Unknown/unsupported storage engine: InnoDB
2018-12-05 10:24:23 721 [ERROR] Aborting

解决方法:

修改mysql配置信息

到/etc/mysql/my.cnf中改如下选项:

innodb_buffer_pool_size=50M

保存再重新运行service mysql start就成功了。

 

原因:

应该是mysql没有配置好,php程序访问量稍微大一些,分配给mysql的内存就满了,然后就锁死了,

Innodb 存储引擎的缓存机制和 MyISAM 的最大区别就在于 Innodb 不仅仅缓存索引,同时还会缓存实际的数据。所以,完全相同的数据库,使用 Innodb 存储引擎可以使用更多的内存来缓存数据库相关的信息,当然前提是要有足够的物理内存。innodb_buffer_pool_size 参数用来设置 Innodb 最主要的 Buffer(Innodb_Buffer_Pool)的大小,也 就是缓存用户表及索引数据的最主要缓存空间,对 Innodb 整体性能影响也最大。这个参数设置成内存的50%-80%,当然具体要结合实际情况而定,考虑别的存储引擎占用的内存,考虑服务器是不是还提供其他服务等等…

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值