你可以用myisamchk来修复表 常用的参数 -o 安全修复 -f 强行修复 -c 检测错误如 myisamchk -o ../date/database_name/table_name.myi 如果是ISAM表,用Isamchk修复
解决方案 »
- autocommit与事务的隔离级别
- 如何往mysql 中插入图片啦?
- 如果你要查看mysql数据库服务器都干了什么事情,需要使用什么命令
- user mysql select * from user,发现里面user为空的有二条,请问含义?
- mysql5.0存储过程创建临时表问题,难道是mysql的BUG,急!!
- 数据量超大的表高效管理的讨论-大量实时采集的数据在数据库中的问题的讨论
- 这里有对MSsql和MYsql都比较熟的吗?帮助把mssql转换为mysql语句
- 请教高手,mysql字符转换问题
- 急!SQL语句实现统计交易总额!
- 取出MYSQL中重复的纪录数,急啊!!!
- 号外:我自己买了份空间
- 百分请教用php对mysql进行模糊查询问题!!
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.在尝试标准表修复方法。以上方法针对mysql有效