如何解决“错误130(HY000):不正确的文件格式”

问题描述:

我有我的数据库中的问题,当我在我的表之一制成的查询我收到此错误信息如何解决“错误130(HY000):不正确的文件格式”

ERROR 130(HY000):错误的文件格式

请问如何解决?

尝试repair表, 另一个好article


相关的从第一连结部:

MySQL数据库,您可以定义不同的表不同的MySQL存储引擎 。存储引擎是用于存储 并检索数据的引擎。最流行的存储引擎是MyISAM和InnoDB。

MyISAM表 - 最终会损坏。这是生活中的事实。

幸运的是,在大多数情况下,MyISAM表损坏很容易修复。

要修复一个表,连接到你的MySQL数据库,并发出:

repair TABLENAME 

要解决的一切,去:

/usr/local/mysql/bin/mysqlcheck --all-databases -uUSERNAME -pPASSWORD -r 

很多时候,MyISAM表会得到腐败,除非您查看日志文件,否则您甚至不会知道 。

我强烈建议您将此行添加到您的/etc/my.cnf配置文件中。它 会自动只要他们成为腐败修复MyISAM表:

[mysqld] 
myisam-recover=backup,force 

http://www.softwareprojects.com/resources/programming/t-how-to-fix-mysql-database-myisam-innodb-1634.html

+0

好的谢谢修复没有工作我的我会创建一个新的数据库;-) – Kohan95 2010-11-28 22:53:06

+0

是所有这一次仍然有效的链接?我认为你应该更新答案添加相关部分 – davejal 2016-02-15 11:22:07

让我解释一下,我试图细节。

我在执行mysqldump后得到了这个“不正确的文件格式”。这与我们在服务器启动/查询表中存在问题类似。

我去了mysql/data/yourdatabasename文件夹并检查了表。 (对于MYISAM类型的表,我们有.frm,.MYI,.MYD。)我发现表只有tablename.frm。所以我只是将它移动了一部分,因为它不再需要,因为缺少.MYI和.MYD文件。对于遇到不正确的文件格式问题的更多表,我做了同样的操作。

在我的情况下,我删除的表不是MYI/MYD,有些表没有数据。在做任何这些之前,请确保两种情况。如果您使用可用数据表,则最终会删除所删除的表的数据丢失。

类型 repair table 'table_name' use_frm 在SQL编辑器中执行它。这修复了索引。良好的工作...