2013-10-27 129 views
2

几天前,我的整个服务器决定崩溃。幸运的是,我设法从我的MySQL安装中恢复数据文件夹。恢复损坏的表

糟糕的是,并不是所有的表格都像以前一样工作。例如:我的用户表是无用的,因为它没有任何结构,但只有其中的行(.frm和.ibd文件)。我想下面的查询来解决此问题:

REPAIR TABLE users USE_FRM 

可悲的是,这说明我的错误“无法打开表”到现在我还没有设法恢复此表。

如果有人能帮我解决这个问题,我会真的很感激它!

如果需要,我会很乐意分享ibd和frm文件。

+0

的可能重复[MySQL的InnoDB表损坏 - 如何解决(http://stackoverflow.com/questions/1348350/mysql-innodb-tables-corrupt-how-to-fix) – Joren

+0

紧随其后的是自己的问题。 “为什么我不做备份?”真正的专业测试不会再犯这个错误。 –

+0

你说得对,从崩溃前一天起我没有做过某种SQL备份,但从一周前只有一次,这是绝对愚蠢的。 – Yannick

回答

1

您可能对this一试:

Use the USE_FRM option only if you cannot use regular REPAIR modes! Telling the server to ignore the .MYI file makes important table metadata stored in the .MYI unavailable to the repair process, which can have deleterious consequences:[.....]

而且您可以尝试从头开始创建这样的.MYI文件:

REPAIR TABLE tablename USE_FRM 

您还可以检查这些引用:

+0

感谢您的快速回复。我试图运行修复查询,但这导致了以下错误:'表'用户'不存在'。它看起来像MySQL甚至不知道该表在那里,但它显示在数据库中存在的所有表的列表中。 – Yannick

+0

@Yannick: - 这有帮助: - http:// help .hardhathosting.com/question.php/123? –

+0

它一定是一个很好的解决方法,但我对所有这些都很新颖,所有这些命令和术语(VDS,SSH)对我来说都很模糊 - 如果我需要做一些对我无关紧要的事情研究所有这些事情,但另一种解决方案会更适合我! – Yannick

相关问题