如何修复“ERROR 130 (HY000):文件格式不正确”
Posted
技术标签:
【中文标题】如何修复“ERROR 130 (HY000):文件格式不正确”【英文标题】:How to fix "ERROR 130 (HY000): Incorrect file format" 【发布时间】:2011-05-16 21:42:07 【问题描述】:当我对我的一个表进行查询时,我的数据库出现问题,我收到此错误消息
错误 130 (HY000):文件格式不正确
请问如何解决?
【问题讨论】:
【参考方案1】:试试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】:让我解释一下我尝试过的细节。
我在执行 mysqldump 后得到这个“不正确的文件格式”。这类似于我们在服务器启动/查询表时遇到的问题。
我去了 mysql/data/yourdatabasename 文件夹并检查了表格。 (对于MYISAM 类型的表,我们有.frm、.MYI、.MYD。)我发现该表只有tablename.frm。所以我只是单独移动了 frm 部分,因为由于缺少 .MYI 和 .MYD 文件而不再需要它。我对更多遇到错误文件格式问题的表做了同样的处理。
在我的情况下,我删除的表不是 MYI/MYD,并且一些表没有数据。在您执行任何此操作之前,请确保这两种情况。如果您对数据可用表执行此操作,则最终会丢失您删除的表的数据。
【讨论】:
【参考方案3】:类型
repair table 'table_name' use_frm
在 SQL 编辑器中并执行它。这将修复索引。干得好……
【讨论】:
非常感谢!用这种方法解决了一个50G myisam tbl的问题 请注意 - use_frm 将重新创建 MyISAM 索引;你也会失去你的 auto_increment 值。小心使用!以上是关于如何修复“ERROR 130 (HY000):文件格式不正确”的主要内容,如果未能解决你的问题,请参考以下文章