How To Check and Repair MyISAM Tables

Q

How To Check and Repair MyISAM Tables? - MySQL FAQs - Storage Engines: MyISAM, InnoDB and BDB

✍: FYIcenter.com

A

If you have a corrupted MyISAM table, like the one resulted from the previous tutorial exercise, you can use the "CHECK TABLE" and "REPAIR TABLE" commands to try to repair it. The following tutorial exercise gives you a good example of repairing a corrupted MyISAM table. Luckily, the table is repaired successfully:

>\mysql\bin\mysql -u dev -piyf fyi

mysql> CHECK TABLE fyi_isam;
+--------------+-------+----------+-------------------------
| Table        | Op    | Msg_type | Msg_text                
+--------------+-------+----------+-------------------------
| fyi.fyi_isam | check | error    | Record at pos: 0 is not
                                       remove-marked
| fyi.fyi_isam | check | error    | record delete-link-chain
                                       corrupted
| fyi.fyi_isam | check | error    | Corrupt                 
+--------------+-------+----------+-------------------------
3 rows in set (0.01 sec)

mysql> REPAIR TABLE fyi_isam;
+--------------+--------+----------+------------------------
| Table        | Op     | Msg_type | Msg_text               
+--------------+--------+----------+------------------------
| fyi.fyi_isam | repair | warning  | Number of rows changed
                                        from 1 to 2
| fyi.fyi_isam | repair | status   | OK                     
+--------------+--------+----------+------------------------
2 rows in set (0.47 sec)

mysql> SELECT * FROM fyi_isam;
+----+-------+-------+
| id | title | count |
+----+-------+-------+
| -1 | NULL  |  NULL |
| -2 | NULL  |   987 |
+----+-------+-------+
2 rows in set (0.00 sec)

2007-05-10, 4604👍, 0💬