`

修复数据表(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”,表名已经成功修复受损表。

分享到:
评论

相关推荐

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

    也许很多人遇到过类似Can’t open file: ‘[Table]mytable.MYI’ 这样的错误信息,却不知道怎么解决他,下面我们做个介绍,

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

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

    react-table-plugins:其中包含其他react-table v7插件

    React表插件 该存储库包含其他 v7插件 安装 使用npm或yarn作为依赖项安装 # NPM $ npm install react-table-plugins ...从表中导出数据 用于显示和计算列摘要 允许单元格选择和单元格范围选择 例子 汇出资料 专栏摘要

    mysql常用命令

    mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10:删除表 mysql>drop TABLE MYTABLE; 11:清空表 mysql...

    读取excel的基本操作。

    MyTable.Open; XLS1.Clear; XLS1.LoadFromFile(self.OpenDialog1.FileName); for Row := XLS1.Sheets[0].FirstRow to XLS1.Sheets[0].LastRow do begin MyTable.Append; for Col := XLS1.Sheets[0]....

    MySQL查询语句大全集锦(经典珍藏).pdf

    SQL查询语句大全集锦 MYSQL查询语句大全集锦 ...mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE; 9:导入.sql 文件命令(例如 D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql;

    mysql 常用命令.pdf

    mysql 常用命令.pdf 安装,启动,停止与卸载Mysql系统服务(进bin目录...mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; ...... ....

    MySQL 入门学习 ——基础教程

    如果出现 "ERROR 2003: Can´t connect to MySQL server on ´localhost´ (10061)“, 说明你的MySQL还没有启动。 · 3、退出MySQL操作界面 在mysql>提示符下输入quit可以随时退出交互操作界面: mysql> quit ...

    java访问access数据库的包,找了好久才找到的

    System.out.println(Database.open(new File("my.mdb")).getTable("MyTable").display()); Creating a new table and writing data into it: Database db = Database.create(new File("new.mdb")); Table newTable ...

    myTable.js

    react + antd个人表格封装,详细说明文档,以及方法共享。

    jquery-datatables-row-grouping:从 code.google.compjquery-datatables-row-grouping 自动导出

    细节RowGrouping 插件增强了数据表,因此您需要在已应用数据表插件的表上应用此插件。 初始化代码示例如下:$("#myTable").dataTable().rowGrouping();这行代码按第一列对表中的行进行分组。 有多种策略可用于分组...

    MySQL命令大全

    mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt”INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10:删除表 mysql>drop TABLE MYTABLE; 11:...

    MYSQL常用语句很容易看懂初学者最为合适

    创建表 mysql->create table mytable(name varchar(20),sex(char(1),birth date); 删除表 mysql->drop table mytable; 显示表的内容 mysql->show tables; 显示表的结构 mysql->describe mytable;

    mysql alter table命令修改表结构实例

    mysql alter table语句可以修改表的基本结构,例如添加字段、删除字段、添加主键、添加索引、修改字段数据类型、对表重命名等等操作,本文章通过两个简单的实例向大家介绍mysql alter table的使用方法  实例一:...

    java访问access包

    创建表并写入数据: Database db = Database.create(new File("new.mdb"));Table newTable = new TableBuilder("NewTable") .addColumn(new ColumnBuilder("a") .setSQLType(Types.INTEGER) .toColumn()) ....

    MYSQL常用命令大全

    mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10:删除表 mysql>drop TABLE MYTABLE; 11:清空表 ...

    mysql-语句大全

    mysql语句大全 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES;...mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6:显示表的结构: mysql> DESCRIBE(describe) MYTABLE;

    fits2db:将FITS二进制表转换为数据库SQL

    例如, % fits2db --sql=postgres --create --table=test mytable.fits | psql -d mydb% fits2db --sql=mysql --create --dbname=mydb --table=test -C *.fits | mysql% fits2db --sql=sqlite --create --table=...

    样式表,大方,美观,方便使用

    #mytable { padding:2px; margin:1px; } #mytable th { font: bold 12px 宋体, Arial, sans-serif; color: #3333ff; border:1px solid #C1DAD7; /* border-right: 1px solid #C1DAD7; border-bottom: 1px ...

    mysql alter table命令修改表结构实例详解

    mysql alter table语句可以修改表的基本结构,例如添加字段、删除字段、添加主键、添加索引、修改字段数据类型、对表重命名等等操作,本文章通过两个简单的实例向大家介绍mysql alter table的使用方法。  实例一:...

Global site tag (gtag.js) - Google Analytics