颖想家

所谓幸福就是你在,我在,你一直在,我一直在

mysql5.6启动时提示ERROR! The server quit without updating PID file的解决办法

服务器上使用MySQL5.6的版本,在启动MySQL服务使用命令/etc/init.d/mysqld start时总会提示

Starting MySQL../usr/local/mysql/bin/mysqld_safe: line 183: 11305 Killed                  nohup /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=VM-0-3-centos.err --pid-file=/usr/local/mysql/data/VM-0-3-centos.pid --port=3306 < /dev/null > /dev/null 2>&1

 ERROR! The server quit without updating PID file (/usr/local/mysql/data/VM-0-3-centos.pid).

在使用reboot命令重启服务器后mysql服务又能正常运行,但是过了一会儿发现mysql服务又死掉了,使用/etc/init.d/mysqld start命令也还是会一直出现ERROR! The server quit without updating PID file的报错,而且服务器的内存使用还超高。

在网上搜索相关问题,根据给出的解决办法(如权限、残余数据影响服务启动等)并不能解决问题。如果上述原因,在重启服务器后应该也启动不了mysql服务才对。

出现这样的情况是由于mysql默认缓存设置对于低内存的环境并不合理。

如果你是购买的阿里云或者腾讯云等入门级的云服务器,其给的内存一般是1G左右。在服务器上安装了MySQL5.6及以上的版本,就会比较容易出现内存占用过高的问题。MySQL5.6的升级初衷都是在高配服务器上面的,通过修改配置文件my.cnf中的performance_schema_max_table_instances参数,能够有效降低内存占用。

默认的配置是:

performance_schema_max_table_instances=12500

table_definition_cache=1400

table_open_cache=2000

修改参数:

performance_schema_max_table_instances=400

table_definition_cache=400

table_open_cache=256

保存之后重新启动MySQL服务,其内存占用即可从400MB以上降低至40MB左右。

发表留言