我怎样才能阻止我的 MySQL 服务器宕机?

我怎样才能阻止我的 MySQL 服务器宕机?

我有一个基于 Ubuntu 机器上的 MySQL 服务器的网站。每隔几周,我的一个用户就会抱怨网站无法正常工作,而我(使用service mysql status)发现这是因为 MySQL 服务器已关闭。我重新启动它(使用service mysql restart),网站又可以正常工作了。在 中/var/log/mysql/error.log,我看到的唯一错误消息是以下形式[ERROR] [MY-013134] [Server] Table 'XXX' is marked as crashed and should be repaired。但是,重新启动服务器后,我没有看到表格有任何问题(我不确定这是否是服务器关闭的原因)。

这些频繁的故障对于我和我的用户来说都是一个很大的困扰。我该如何解决这个问题?

答案1

如果磁盘空间不足或出现类似的意外事件,某些数据库表可能已经损坏。

要解决这个问题,您需要从 MYSQL 运行它。

修复表 db_name.table_name;

答案2

听起来好像该表已声明ENGINE=MyISAM。这个旧引擎存在突然关闭导致该错误消息的问题。如前所述REPAIR TABLE(对于涉及的每个表),这是手动修复。

长期解决方案是切换到ENGINE=InnoDB。该引擎避免问题并自行修复大多数其他问题。

由于 MyISAM 正在逐步淘汰,引擎的改变最终将是强制性的。

相关内容