如何修复损坏的表

ssb*_*cse 9 mysql

我有一个mysql名为Sample的表.我/var/lib/mysql/Sample.MYI用一些值编辑了文件.现在检查TABLE Sample查询显示为

表'Sample'的密钥文件不正确; 尝试修复它

为了解决这个问题,我尝试使用以下命令myisamchk -r Sample.MYI.但结果是"myisamchk:

错误:尝试重新创建索引文件时出错140. Sample.MYI由于错误,MyISAM表未修复".

现在如何修复这张桌子?

Joh*_*ica 16

如果您没有备份,请不要使用原始文件并且无法重新下载,以下是一些可能对您有所帮助的链接:

http://www.felipecruz.com/repair-mysql-database.php
http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html(另见本页底部的链接)
http://forums.mysql.com/read.php?21,362974,362974

以下命令将从头开始重新创建.myi文件:

REPAIR TABLE tablename USE_FRM
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述不过要小心这个页面:http://dev.mysql.com/doc/refman/5.5/en/repair-table.html说:

仅当您不能使用常规REPAIR模式时才使用USE_FRM选项!告诉服务器忽略.MYI文件会使存储在.MYI中的重要表元数据无法用于修复过程,这可能会产生有害后果:[......]

最后,如何以不同的方式重做:

http://www-users.cs.york.ac.uk/susan/joke/foot.htm


min*_*s23 10

检查损坏的表的状态

check table tablename;
Run Code Online (Sandbox Code Playgroud)

例如

mysql> check table realtime_clicks_update;
+--------------------------------+-------+----------+----------+
| Table                          | Op    | Msg_type | Msg_text |
+--------------------------------+-------+----------+----------+
| logdata.realtime_clicks_update | check | status   | OK       |
+--------------------------------+-------+----------+----------+
Run Code Online (Sandbox Code Playgroud)

如果状态不正常,则使用以下命令进行修复

mysql> repair table tablename;
Run Code Online (Sandbox Code Playgroud)


Lig*_*ica 8

你为什么编辑这个.MYI文件?你不应该这样做.

从备份还原然后以适当的方式重新应用更改.