Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 崩溃后自动修复数据库表,或切换到InnoDB_Mysql_Crash_Innodb_Myisam_Oscommerce - Fatal编程技术网

Mysql 崩溃后自动修复数据库表,或切换到InnoDB

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中的表,它将再次正常工作 上次崩溃后,我将会话

有时,mySQL数据库中的表在服务器重新启动或与数据库的连接中断后崩溃。 在过去的3-4周内,这种情况已经发生了好几次。 这是错误消息的外观:

145-表“/xxx/sessions”标记为已崩溃,应 修复了sesskey所在会话中的选择值= “60fa1fab3a3d285cfb7bc1c93bb85f64”和到期日>“1395226673” [步停]

到目前为止,已经崩溃的是tables会话和whos_online。如果我修复phpmyadmin中的表,它将再次正常工作

上次崩溃后,我将会话从MyISAM更改为InnoDB。在线的表仍然使用MyISAM

我使用osCommerce 2.2 rc2a,我正在寻找关于这一问题的任何想法和建议

一个解决方案可能是将这两个表都更改为InnoDB,因为它应该是自愈的。这是个好主意还是个坏主意

另一种方法是将它们放在MyISAM中,并对响应错误消息的php文件执行如下操作:

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。因此,如果能给出一个直截了当的答案,我们将不胜感激。