【发布时间】:2012-12-26 16:37:28
【问题描述】:
在我管理的一个站点上,我有一个设置为 MYISAM 的表,并且它经常崩溃。每次自动修复都失败,只好进去运行REPAIR TABLE命令。我已经查看了可能的解决方案,例如这个:MySQL table is marked as crashed
看起来最好的方法可能是将表更改为 InnoDB。
但是,该表有一个 FULLTEXT 索引,如果我可以删除它就没有问题,但是该站点是在框架上运行的(特别是 Elgg),所以我不知道什么样的损坏或问题我以后可能会有,所以这可能不是一个好的选择。
所以对于我的问题:我怎样才能找到崩溃的原因?该站点位于 Web 主机上,并在 PHP 上运行。
【问题讨论】:
-
向您的托管服务提供商公司提交故障单,了解他们的 mysqld 服务器软件是否经常崩溃。如果是,请他们将您的数据库移动到不同的 MySQL 服务器计算机。或者,解雇您的托管服务提供商并获得更好的托管服务提供商。另外,在 Elgg 支持论坛上询问这个问题。除非出现严重错误,否则不应发生这种情况。
-
您多久写入一次数据库?如果你在桌子上运行大量的
INSERTs 或UPDATEs,你可能想开始使用事务......但如果你不是每分钟运行数百次写入,我倾向于同意Ollie Jones 对此...除非 MySQL 出现问题,否则它真的不应该发生。 -
MySQL 服务器本身崩溃了吗?使用
SHOW GLOBAL STATUS LIKE 'Uptime'检查服务器的正常运行时间。如果服务器正常运行时间很短,则整个服务器更有可能崩溃,这可能是一个截然不同的解决方案。 -
感谢您的指点。我认为不是因为,虽然我不太确定网络主机如何处理它的数据库,但我有许多其他数据库/表用于同一帐户下的不同站点,所有这些都很好。唯一崩溃的是每次针对一个特定数据库/站点的一个特定表。