MySQL Unknown table engine InnoDb 错误解决

MySQL错误排查

用了很久的一张表,突然插入数据时候报错,大概是Unknown table engine ‘InnoDb’。
但是之前一点问题都没有,于是尝试重启MySQL看是否能够解决,重启以后log中发现如下错误:

1
2
3
4
5
6
7
8
9
10
11
12
170512 11:30:07 InnoDB: Error: cannot allocate 2147500032 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 36878736 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...

大意就是,无法分配那么多内存,系统错误码是12。

于是,查看下目前使用的内存,发现有些无用的PhantomJS进程占用了过多的内存,kill掉之后,并把MySQL的
innodb_buffer_pool_size改小了点,就可以使用了,之前可能是由于服务中内存足够,所以没有启动问题导致的。

参考链接:

http://blog.feehi.com/linux/132.html
http://myunix.blog.51cto.com/191254/1705495
http://blog.csdn.net/lxpbs8851/article/details/9250439
http://blog.csdn.net/yang1982_0907/article/details/20123055