`

修复数据表(mysql repair table-Can’t open file: ‘[Table]mytable.MYI’.)

 
阅读更多

下面讲的方法只对MyISAM格式的表有效。其他类型的损坏需要从备份中恢复。

REPAIR TABLE SQL statement(mysql服务必须处于运行状态)。
在修复表的时候,最好先作一下备份。所以你需要两倍于原始表大小的硬盘空间。请确保在进行修复前你的硬盘空间还没有用完。

用”repair table”方式修复
语法:repair table 表名 [选项]
选项如下:
QUICK 用在数据表还没被修改的情况下,速度最快
EXTENDED 试图去恢复每个数据行,会产生一些垃圾数据行,万般无奈的情况下用
USE_FRM 用在.MYI文件丢失或者头部受到破坏的情况下。利用.frm的定义来重建索引

多数情况下,简单得用”repair table tablename”不加选项就可以搞定问题。但是当.MYI文件丢失或者头部受到破坏时,这样的方式不管用,例如:

mysql> REPAIR TABLE mytable;
+————————-+——–+———-+———————————————+
| Table | Op | Msg_type | Msg_text |
+————————-+——–+———-+———————————————+
| sports_results.mytable | repair | error | Can’t find file: ‘mytable.MYI’ (errno: 2) |
+————————-+——–+———-+———————————————+

修复失败的原因时索引文件丢失或者其头部遭到了破坏,为了利用相关定义文件来修复,需要用USE_FRM选项。例如:

mysql> REPAIR TABLE mytable USE_FRM;
+————————-+——–+———-+————————————+
| Table | Op | Msg_type | Msg_text |
+————————-+——–+———-+————————————+
| sports_results.mytable | repair | warning | Number of rows changed from 0 to 2 |
| sports_results.mytable | repair | status | OK |
+————————-+——–+———-+————————————+

我们可以看到Msg_test表项的输出信息”ok”,表名已经成功修复受损表。

分享到:
评论

相关推荐

    mysql-connector-java-5.1.40-bin.jar.7z

    MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。标题中的"mysql-...

    mysql-connector-java-5.1.47-bin.jar

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其在各种规模的企业、网站和应用程序中都有广泛的应用。在Java编程环境中,为了与MySQL数据库进行交互,我们需要一个特定的驱动程序,这就是`mysql-connector...

    mysql-connector-java-8.0.28.tar.gz

    MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在MySQL数据库上执行SQL查询和操作。在这个"mysql-...

    Can’t open file:'[Table]mytable.MYI'

    "Can’t open file:'[Table]mytable.MYI'" 是一个常见的MySQL错误,通常出现在尝试访问或操作MyISAM格式的表时。这个错误表示MySQL无法打开指定表的索引文件,这可能是由于多种原因,如文件丢失、文件头部损坏或是...

    mysql-connector-java-5.1.7-bin.jar.rar

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而Java作为一种广泛使用的编程语言,经常被用来与MySQL进行数据交互。在Java项目中,为了连接到MySQL数据库,开发者通常需要一个名为`mysql-connector-java`的...

    mysql连接包mysql-connector-java-5.1.27.jar

    MySQL是世界上最流行的开源关系型数据库管理系统之一,而`mysql-connector-java`是MySQL官方提供的用于Java应用程序连接到MySQL服务器的驱动程序。`mysql-connector-java-5.1.27.jar`是这个驱动的一个特定版本,它...

    mysql-connector-java-5.1.7-bin.jar

    MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,尤其在Web应用程序开发中被广泛使用。为了在Java环境中与MySQL数据库进行交互,我们需要一个中间桥梁,这就是所谓的JDBC(Java Database Connectivity)...

    mysql-connector-java-8.0.26.tar.gz

    MySQL是世界上最受欢迎的开源数据库系统之一,而Java作为一种广泛使用的编程语言,经常被用来与数据库进行交互。在Java中,连接MySQL数据库的关键组件就是`mysql-connector-java`,这是一个允许Java应用程序通过Java...

    mysql-connector-java-5.0.8-bin.jar包

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够在Java平台上方便地访问MySQL数据库。标题中的"mysql-...

    bootstrap-table-export.js和tableExport.js

    而“bootstrap-table-export.js”和“tableExport.js”是针对Bootstrap表格的导出插件,它们扩展了表格的功能,允许用户将表格数据导出为各种格式,如CSV、Excel、PDF等,便于数据分析和存储。 首先,我们来详细...

    mysql 连接驱动 mysql-connector-java-5.1.46.jar

    MySQL是世界上最流行的开源关系型数据库管理系统之一,而`mysql-connector-java-5.1.46.jar`是MySQL提供的一款Java数据库连接驱动,用于在Java应用程序中与MySQL服务器进行通信。这个驱动程序遵循JDBC(Java ...

    mysql-connector-java-5.1.37-bin.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而Java作为一种广泛使用的编程语言,经常被用来与MySQL进行数据交互。在Java中,连接MySQL数据库的关键是通过Java Database Connectivity (JDBC) API。`mysql-...

    新建文件夹mysql-connector-java-5.0.8-bin.jar.rar

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易于扩展的特性赢得了全球开发者的青睐。在Java编程环境中,与MySQL进行交互通常需要借助于特定的驱动程序,即JDBC(Java Database ...

    Can’t open file:'[Table]mytable.MYI’

    1,REPAIR TABLE SQL statement(mysql服务必须处于运行状态)。 2,命令mysqlcheck(mysql服务可以处于运行状态)。 3,命令myisamchk(必须停掉mysql服务,或者所操作的表处于不活动状态)。 在修复表的时候,最好先作一下...

    mysql-connector-java-8.0.30.tar

    MySQL Connector/J 8.0.30 是MySQL数据库与Java应用程序之间的重要桥梁,它是一个用于连接Java应用程序到MySQL服务器的JDBC驱动程序。这个压缩包`mysql-connector-java-8.0.30.tar`包含了运行Java应用并与MySQL进行...

    mysql-connector-java-5.1.46下载

    MySQL Connector/J 5.1.46 是 MySQL 官方为 Java 应用程序提供的一款数据库连接驱动,它使得 Java 开发者能够方便地在 Java 应用中连接到 MySQL 数据库,执行 SQL 查询和管理数据。这个版本的驱动遵循 JDBC(Java ...

    mysql-connector-java-3.0.17-ga-bin.jar.zip_connect

    MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个用于Java平台的MySQL驱动程序,使得Java开发者能够方便地在MySQL数据库上执行SQL操作。标题"mysql-connector-java-3.0.17-ga-bin.jar.zip_connect...

    mysql-connector-java-5.1.47.zip

    MySQL Connector/J 5.1.47 是 MySQL 数据库与 Java 应用程序之间的桥梁,它是一个实现了 Java Database Connectivity (JDBC) API 的驱动程序,允许 Java 开发者通过编写 Java 代码来访问和操作 MySQL 数据库。...

    mysql-connector-java-8.0.13.jar

    这样,Hive可以通过JDBC驱动连接到MySQL来存储表元数据和其他配置信息。 2. Sqoop集成:Sqoop是一个用于在Hadoop和关系数据库之间转移数据的工具。在使用Sqoop导出或导入数据到/从MySQL时,需要指定MySQL的JDBC驱动...

Global site tag (gtag.js) - Google Analytics