ある日、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 | +---------------------+--------+----------+------------------------------------------------+
修正完了しました。