在修复表之前要靠被他们,注意备份,切记!1.标准的表修复
a.试着用 --recover选项修复表,可以加上 --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。
% myisamchk --recover --quick table_name
or
% isamchk --recover --quick table_name
b.如果问题还存在,在试一下上一步命令,但是要忽略 --quick选项,这样允许修改数据文件。
% myisamchk --recover table_name
or
% isamchk --recover table_name
c.如果还不工作,试一下 --safe-recover 修复方法。但这种方法比普通方法要慢,但能修复 --recover不能修复的问题。
% myisamchk --safe-recover table_name
or
% isamchk --safe-recover table_name
如果在myisamchk or isamchk 由于一个"can't create new temp file:file_name"的错误消息在任何一步停止,应该重复该命令并
加入 --force选项强迫清除临时文件。2.如果标准修复失败这样做
a.定位到包含崩溃表的数据库目录中。
b.将该表的数据文件移到安全的地方。
c.调用mysql并通过执行下列语句重新创建新的空表,该语句使用表的描述文件
tbl_name.frm重新开始生成新的数据和索引文件。
mysql>delete from tbl_name;
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚建的新的空文件。
e.在世这样用标准修复方法。为了修复表的描述文件,可先从备份文件中恢复,然后再用标准修复方法。
如果由于某些原因没有备份,如果知道create table 语句,仍然可以恢复该文件:
a.定位到包含崩溃表的数据库目录中。
b.将该表的数据文件移到安全的地方。如果想使用用索引的话,还需要把索引文件移走。
c.调用mysql 发布create table 语句重建表。
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚才新建的数据文件。如果在第2不中移动了索引文件,则也要讲起移回到
数据库目录中。
e.在尝试标准表修复方法。
a.试着用 --recover选项修复表,可以加上 --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。
% myisamchk --recover --quick table_name
or
% isamchk --recover --quick table_name
b.如果问题还存在,在试一下上一步命令,但是要忽略 --quick选项,这样允许修改数据文件。
% myisamchk --recover table_name
or
% isamchk --recover table_name
c.如果还不工作,试一下 --safe-recover 修复方法。但这种方法比普通方法要慢,但能修复 --recover不能修复的问题。
% myisamchk --safe-recover table_name
or
% isamchk --safe-recover table_name
如果在myisamchk or isamchk 由于一个"can't create new temp file:file_name"的错误消息在任何一步停止,应该重复该命令并
加入 --force选项强迫清除临时文件。2.如果标准修复失败这样做
a.定位到包含崩溃表的数据库目录中。
b.将该表的数据文件移到安全的地方。
c.调用mysql并通过执行下列语句重新创建新的空表,该语句使用表的描述文件
tbl_name.frm重新开始生成新的数据和索引文件。
mysql>delete from tbl_name;
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚建的新的空文件。
e.在世这样用标准修复方法。为了修复表的描述文件,可先从备份文件中恢复,然后再用标准修复方法。
如果由于某些原因没有备份,如果知道create table 语句,仍然可以恢复该文件:
a.定位到包含崩溃表的数据库目录中。
b.将该表的数据文件移到安全的地方。如果想使用用索引的话,还需要把索引文件移走。
c.调用mysql 发布create table 语句重建表。
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚才新建的数据文件。如果在第2不中移动了索引文件,则也要讲起移回到
数据库目录中。
e.在尝试标准表修复方法。
解决方案 »
- 如何查询最近40条记录中某一字段的值并将其存入数组?
- MySQL关于表间关系的问题
- 我怎么能不提经典问题呢——字符乱码问题 【100分】
- MySQL报错:Lock wait timeout exceeded; try restarting transaction
- 请问大虾,转数据库的问题,mssql->mysql
- 急!!!请高手帮忙,在线等
- 作一个链接表专放关联表的id 有用吗?(:
- 请问高手,一个向mysql中导入sqlserver数据时的报错.
- MYSQL触发器问题
- 有什么确切的办法能知道update语句是执行成功的吗?
- 怎么样能实现用户点击按扭,数据库的一个字段就加1?
- 怎样更改字段名称。。。
myisamchk: error: 'c:\mysql\data\ut0116\ut_online.myd' is not a MyISAM-table