mysql でエラー


ある日、mysql 5.1 でこんなエラーが多発しました。

/usr/local/mysql/libexec/mysqld: Table './db/table' is marked as crashed and should be repaired

確認して見ると、テーブルが破壊されている様子。
mysqlにログインして、データベースを選択。チェックしてみます。

check table SystemEvents;
+---------------------+-------+----------+-------------------------------------------------------------+
| Table               | Op    | Msg_type | Msg_text                                                    |
+---------------------+-------+----------+-------------------------------------------------------------+
| db_value.table_value| check | warning  | Table is marked as crashed                                  |
| db_value.table_value| check | warning  | 2 clients are using or haven't closed the table properly    |
| db_value.table_value| check | error    | Size of indexfile is: 566045696        Should be: 566129664 |
| db_value.table_value| check | error    | Size of datafile is: 387131476         Should be: 387181260 |
| db_value.table_value| check | error    | Corrupt                                                     |
+---------------------+-------+----------+-------------------------------------------------------------+
5 rows in set (0.05 sec)

ああ、壊れてますね。
myisamならrepairで修正できます。

repair table table;
+---------------------+--------+----------+------------------------------------------------+
| Table               | Op     | Msg_type | Msg_text                                       |
+---------------------+--------+----------+------------------------------------------------+
| db_value.table_value| repair | warning  | Number of rows changed from 2470689 to 2470363 |
| db_value.table_value| repair | status   | OK                                             |
+---------------------+--------+----------+------------------------------------------------+

修正完了しました。

コメントを残す

メールアドレスが公開されることはありません。