0%

Mysql cannot allocate memory for the buffer pool 解决方法

异常

原因

内存不足

解决办法

mysql的配置都在/ect/mysql.cnf里面(Ubuntu目录有稍微的差别,用whereis my.cnf就能找到了)。
vim /etc/my.cnf
#innodb_buffer_pool_size = 128M
这里显示默认配置是128M,是注释状态,我们只需要把注释去掉,把128改小一点(根据个人情况修改),我改为:
innodb_buffer_pool_size = 50M

进一步优化

一般出现这种问题的同学,内存肯定都不大,所以我们可以设置swap分区,也就是通常所说的虚拟内存。
swap的作用具体这里就不做说明了,简单点说就是可以辅助Mem内存。
直接上代码:

dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile

最后添加代码/swapfile swap swap defaults 0 0到/etc/fstab文件里面。
然后命令free一下,能看到Mem和swap信息就说明成功了。
最后重启mysql就可以了。

欣赏此文?求鼓励,求支持!