昨天在处理mysql数据的时候提示:Got error 127 from table handler。

症状为:取出前面的数据没问题,但是在遇到一条游问题的数据时显示“Got error 127 from table handler”。

解决方案:

1.先使用 check table mytable;命令确定问题数据行

比如:

mysql> check table mytable;
+-------------------+-------+----------+----------------------------------------------------+
| Table             | Op    | Msg_type | Msg_text                                           |
+-------------------+-------+----------+----------------------------------------------------+
| mydb.mytable | check | error    | got error: 5 when reading datafile at record: 1291 |
| mydb.mytable | check | error    | Corrupt                                            |
+-------------------+-------+----------+----------------------------------------------------+
2 rows in set (3.09 sec)

2.check的结果与测试得到的差错点一致,为第1291条数据开始便有问题了!然而在这个时候尝试取出数据时失败了:

以下是代码片段:
mysql> select * from `mytable` limit 1291, 1;
ERROR 1016: Can't open file: 'mytable.MYD'. (errno: 145)

3.修复表时最好先锁定表,否则有可能导致数据全部丢失

4.repair table mytable;
mysql> repair table mytable;
+-------------------+--------+----------+----------------------------------------+
| Table             | Op     | Msg_type | Msg_text                               |
+-------------------+--------+----------+----------------------------------------+
| mydb.mytable | repair | warning  | Number of rows changed from 30030 to 0 |
| mydb.mytable | repair | status   | OK                                     |
+-------------------+--------+----------+----------------------------------------+
2 rows in set (3.10 sec)

5.收工

 

posted on 2009-12-13 21:33  林石  阅读(859)  评论(0编辑  收藏  举报