sql >> データベース >  >> RDS >> Mysql

MySQLテーブルはクラッシュとしてマークされています

    MyISAMテーブルは非常に簡単にクラッシュします。各テーブルには、MyISAMテーブルが処理する開いているファイルの数を追跡するヘッダー情報があります。

    mysqldがクラッシュした場合、ファイルハンドルを開いているMyISAMテーブルには、ファイルハンドルを閉じるたびにファイルハンドル数をデクリメントする機会がありませんでした。したがって、新しいファイルハンドルがMyISAMテーブル(.MYDファイル)を開き、mysqldがMyISAMテーブルが開いていると信じるファイルハンドルの数とMyISAMテーブルが実際に開いているファイルハンドルの数の不一致を検出した場合、テーブルは次のようになります。クラッシュしたと宣言されました。

    これを処理するには、次の4つの方法があります。

    方法#1:MyISAMの自動修復をセットアップする

    私の投稿を参照してください https://dba.stackexchange.com/a/15079/877 > MySQLの再起動時にこれを設定する方法について(2012年3月15日)

    方法#2:MyISAMの代わりにInnoDBを使用する

    InnoDBには、ストレージエンジンの初期化に組み込まれたクラッシュリカバリがあります。 MyISAMはしません

    方法#3:MyISAMの代わりにAriaを使用する

    Ariaは、MariaDBのMyISAMのドロップイン代替品です。個々のテーブルのクラッシュリカバリメカニズムを備えています。

    方法#4:mysqldで-9を殺さないでください

    mysqldが故意または非自発的にクラッシュした場合、開いているすべてのMyISAMテーブルのヘッダー情報により、それらがクラッシュ状態になります。 mysqldを手動で強制終了する必要はありません。




    1. Spring Data JPAソートでnull処理を定義するにはどうすればよいですか?

    2. Mysql:不明な変数、mysqlアプリケーションを実行できない、my.cnfとは関係がないようです

    3. MySQLはIDで任意の順序を指定します

    4. Python zlib出力、mysql utf-8テーブルから回復する方法は?