mysql:テーブルのrepair

Pocket

mysqlでこんなエラーメッセージが出てた。

Table table_name is marked as crashed and should be repaired

とりあえず、エラーが出ているテーブルを調べる。

mysql> check table table_name;
+————+——-+———-+——————————————————-+
| Table | Op | Msg_type | Msg_text |
+————+——-+———-+——————————————————-+
| table_name | check | warning | Table is marked as crashed |
| table_name | check | warning | 1 client is using or hasn’t closed the table properly |
| table_name | check | error | Record at pos: 482160 is not remove-marked |
| table_name | check | error | record delete-link-chain corrupted |
| table_name | check | error | Corrupt |
+————+——-+———-+——————————————————-+

確かにテーブルにエラーがある。
これを直すにはrepairコマンドを使うらしい。

mysql> repair table table_name;
+————+——–+———-+————————————–+
| Table | Op | Msg_type | Msg_text |
+————+——–+———-+————————————–+
| table_name | repair | warning | Number of rows changed from 63 to 64 |
| table_name | repair | status | OK |
+————+——–+———-+————————————–+

これで直ったっぽい。
どうしてこの手順で直るのかはいつか調べる。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です