如何修复“ERROR 130(HY000):文件格式不正确”

时间:2010-11-28 15:50:54

标签: mysql

当我在其中一个表上查询时,我的数据库出现问题我收到此错误消息

错误130(HY000):文件格式不正确

请问如何解决?

3 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:8)

试试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

答案 2 :(得分:0)

让我解释一下我尝试的细节。

执行mysqldump后,我得到了“不正确的文件格式”。它类似于我们在服务器启动/查询表时遇到的问题。

我转到mysql / data / yourdatabasename文件夹并检查了表格。 (对于MYISAM类型的表,我们有.frm,.MYI,.MYD。)我发现该表只有tablename.frm。所以我只是因为缺少.MYI和.MYD文件而单独移动了frm部分,因为它不再需要了。对于一些遇到错误文件格式问题的表,我也做了同样的事情。

就我而言,我删除的表不是MYI / MYD,有些表没有数据。在进行任何此类操作之前,请确保这两种情况。如果您使用数据可用表,则最终会删除要删除的表的数据丢失。