Mysql 崩溃后自动修复数据库表,或切换到InnoDB
有时,mySQL数据库中的表在服务器重新启动或与数据库的连接中断后崩溃。 在过去的3-4周内,这种情况已经发生了好几次。 这是错误消息的外观: 145-表“/xxx/sessions”标记为已崩溃,应 修复了sesskey所在会话中的选择值= “60fa1fab3a3d285cfb7bc1c93bb85f64”和到期日>“1395226673” [步停] 到目前为止,已经崩溃的是tables会话和whos_online。如果我修复phpmyadmin中的表,它将再次正常工作 上次崩溃后,我将会话从MyISAM更改为InnoDB。在线的表仍然使用MyISAM 我使用osCommerce 2.2 rc2a,我正在寻找关于这一问题的任何想法和建议 一个解决方案可能是将这两个表都更改为InnoDB,因为它应该是自愈的。这是个好主意还是个坏主意 另一种方法是将它们放在MyISAM中,并对响应错误消息的php文件执行如下操作:Mysql 崩溃后自动修复数据库表,或切换到InnoDB,mysql,crash,innodb,myisam,oscommerce,Mysql,Crash,Innodb,Myisam,Oscommerce,有时,mySQL数据库中的表在服务器重新启动或与数据库的连接中断后崩溃。 在过去的3-4周内,这种情况已经发生了好几次。 这是错误消息的外观: 145-表“/xxx/sessions”标记为已崩溃,应 修复了sesskey所在会话中的选择值= “60fa1fab3a3d285cfb7bc1c93bb85f64”和到期日>“1395226673” [步停] 到目前为止,已经崩溃的是tables会话和whos_online。如果我修复phpmyadmin中的表,它将再次正常工作 上次崩溃后,我将会话
if $error contain "is marked as crashed and should be repaired"
run a table repair script
这是个好主意还是个坏主意
这是我的服务器规格
数据库:MySQL 5.5.36-cll
PHP版本:5.3.15首先,您应该首先解决表损坏的问题。InnoDB试图修复损坏的文件,但它无法发挥神奇的作用。重复的不安全关机或其他事故可能会严重损坏您的数据库 如果你只有一个小网站,所有的变体都很好。MyISAM有时会稍微快一点,而InnoDB提供了一些扩展功能。如果服务器足够强大,则可能不会遇到任何问题。在大多数情况下,我会坚持使用InnoDB,因为它会解释一致的数据,并且在文件损坏时会抛出错误,这与使用MYISAM表,然后有时在生产中抛出错误不同
但如果出现严重故障,则需要付出更多的努力才能让InnoDB支持的MySQL恢复运行,如果不能自动恢复的话。存在不同的配置文件,这些配置文件只能从服务器的外壳中获得,并且需要修改配置文件、手动启动服务器、读取其输出以及可能执行一些其他操作。如果您对这些问题没有任何线索,那么您可能希望继续使用MyISAM。服务器总是启动,如果表完全损坏,您可能需要导入备份。但这比编辑配置文件和读取数据库输出等更容易。您知道MyISAM和InnoDB之间的区别吗?这可能会回答为什么您应该或不应该更改表引擎。我在最近几天读了一些关于它的文章,但我仍然不确定更改最终会产生什么影响。我看到osCommerce v3.0只使用Innodb,而Magento并不是全部,至少有些Magento商店使用Innodb。因此,如果能给出一个直截了当的答案,我们将不胜感激。