MyISAMで構造にエラーが出た時の対応

alkoshikawa 52views 更新:2015年2月3日

MyISAMはInnodbと違ってAMIなどでスナップショットを取ると壊れることがあります。

Table '.{db_name}/dtb_order_detail_order_detail_id_seq' is marked as crashed and should be repaired

こんなメッセージがログに出るかと思います。 こうなるとSelectをするとエラーが返ってきて値を取得することができません。

myisamchk --fast {mysql}/{db_name}/dtb_order_detail_order_detail_id_seq

で壊れているチェックをすることができ、

myisamchk --recover {mysql}/{db_name}/dtb_order_detail_order_detail_id_seq

で修正できます。

MyISAMがあるか確認するには

use information_schema
select table_name, engine from tables where table_schema = '{db_name}' AND engine != 'InnoDB';

で調べられます。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません