如何修复“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):文件格式不正确”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复drv?

如何修复漏洞

如何修复WMI

PHP网站漏洞怎么修复 如何修补网站程序代码漏洞

如何修复这些漏洞? (npm audit fix 无法修复这些漏洞)

如何修复AppScan漏洞