mysql> check table TABLE_NAME;
+————————-+——-+———-+———————————————————–+
| Table | Op | Msg_type | Msg_text |
+————————-+——-+———-+———————————————————–+
| TABLE_NAME | check | warning | 16 clients are using or haven’t closed the table properly |
| TABLE_NAME | check | error | Found 101 keys of 88579 |
| TABLE_NAME | check | error | Corrupt |
+————————-+——-+———-+———————————————————–+
3 rows in set (0.04 sec)
こんな場合
MyISAM形式のデータベースのリペアは myisamchk コマンドで行います。
直前にMySQLがクラッシュして他のホストにてフェイルオーバーした場合などは、テーブルが破損する恐れがあります。
ファイルをチェックするには –fast オプションとファイル名。
$ myisamchk –fast /var/lib/mysql/sample/table.MYI
チェックでエラーになったファイルをリペアするには「–recover」を使います。
$ myisamchk –recover /var/lib/mysql/sample/table.MYI
リペアに失敗した場合は「–safe-recover」を試します。
$ myisamchk –safe-recover /var/lib/mysql/sample/table.MYI