MySQL崩溃最常见的原因是由于内存不足而停止或无法启动。要检查这一点,你需要查看MySQL崩溃后的错误日志。
首先,尝试启动MySQL服务器,输入:
shell
sudo systemctl start mysql
然后查看错误日志,看看是什么原因导致MySQL崩溃。你可以使用less
来查看日志,一次一页:
shell
sudo less /var/log/mysql/error.log
一些常见的消息会显示Out of memory
或mmap can't allocate
。
潜在的内存不足的解决方案:
- 优化你的MySQL配置 。这是一个强大的开源工具(MySQLtuner) (https://github.com/major/MySQLTuner-perl)。运行MySQLtuner脚本将输出一组建议调整你的MySQL配置文件(
mysqld.cnf
)。注意,在使用MySQLTuner之前,服务器运行的时间越长,它的建议就越准确。要获得内存使用的估计,您的当前设置和MySQLTimer提出的,使用这个MySQL计算器。 - 减少您的web应用程序的页面加载对MySQL的依赖。这通常可以通过在应用程序中添加静态缓存来实现。这方面的例子包括Joomla,它具有可以启用的内置功能,以及WP Super Cache,一个添加了这种功能的WordPress插件。
- 升级到更大的VPS。对于使用MySQL数据库的服务器,我们推荐至少有1GB内存的服务器,但是数据的大小和类型会显著影响内存需求。
请注意,尽管升级服务器是一个潜在的解决方案,但只有在调查和权衡所有其他选项后,才建议您升级服务器。升级后拥有更多资源的服务器同样会花费更多的钱,所以只有当它确实是最好的选择时,你才应该进行调整大小。还要注意,MySQL文档中包含了许多其他建议,用于诊断和防止崩溃。