512内存MySQL因out of memory启动失败

重启阿里云服务器后,发现MySQL启动失败。原因如下:

Starting MySQL…The server quit without updating PID file /alidata/server/mysql/data/AY140620200054865f40Z.pid).[失败]

查找syslog日志,发现以下错误。

“Out of memory: Kill process 9682 (mysqld) score 9 or sacrifice child”

经查资料分析,是内核里的 Out of Memory (OOM) killer主动强制杀死mysql进程,以保护系统因不足内存而崩溃。

经多方资源查找分析,原来是mySQL版本升级为5.6版本后,其默认缓存配置被修改为较大值,故会造成这情况。于是把my.cnf文件增加如下:

performance_schema_max_table_instances 12500  =>修改1250
table_definition_cache 1400 =>修改为140
table_open_cache 2000 =>修改200

贴图如下,重启后问题解决。

image