阿里云单核2G的配置挂着两个企业网站,访问量一般。最近每天几乎都会出现网站打不开显示数据库链接失败的问题。
多方寻求原因发现,mysql的pid文件缺失,并无法重启自建,后来也看了其他帖子说关闭日志什么的未果,查看系统日志发现,是因为内存满了导致mysql进程被杀,然后就一直挂起状态。
Sep 25 11:33:48 iZ28jcqqr7lZ kernel: Out of memory: Kill process 23201 (mysqld) score 53 or sacrifice child
Sep 25 11:33:48 iZ28jcqqr7lZ kernel: Killed process 23201, UID 500, (mysqld) total-vm:444168kB, anon-rss:102612kB, file-rss:120kB
无奈又查询为什么查询量很小的数据库会爆内存,网站之前做过迁移,一直没有事情,新环境下mysql改了innoDB的引擎,怀疑是这个问题。果断重启服务器,启动mysql后,把对应数据库里的表引擎改回了MYISAM。
mysql> use 数据库名
mysql> alter table 表名 engine=myisam;
如果多张表需要改可以考虑批量操作,具体sql语句或脚本大家可以百度下。
改完在mysql配置文件下my.conf加上以下,改默认引擎:
skip-innodb
default-storage-engine=MYISAM
default-tmp-storage-engine=MYISAM
最后重启mysql
时间: 2024-10-10 18:21:31