テーブルが破損した場合、または一部の更新コマンドのあとに mysqld で常に障害が発生する場合は、次の手順を行うことによってこのバグが再現可能かどうかをテストできます。
MySQL デーモンを停止します (mysqladmin shutdown を使用します)。
テーブルのバックアップを作成します (非常にまれですが、修復によって何らかの障害が発生する場合に対して保護するため)。
myisamchk -s database/*.MYI を使用してすべてのテーブルをチェックします。不正なテーブルがあった場合は、myisamchk -r database/
table
.MYI を使用して修復します。テーブルの 2 番目のバックアップを作成します。
より多くの領域が必要な場合は、MySQL データディレクトリから古いログファイルを削除 (または移動) します。
バイナリログを有効にして mysqld を起動します。mysqld がクラッシュするクエリーを見つける場合は、一般クエリーログも有効にしてサーバーを起動します。セクション5.2.3「一般クエリーログ」およびセクション5.2.4「バイナリログ」を参照してください。
テーブルがクラッシュしたら、
mysqld サーバー
を停止します。バックアップをリストアします。
バイナリログを有効にせずに、mysqld サーバーを再起動します。
mysqlbinlog binary-log-file | mysql を指定してコマンドを再実行します。バイナリログは、
hostname-bin.
という名前で MySQL データベースディレクトリに保存されます。NNNNNN
テーブルがふたたび破損したか、上記のコマンドで mysqld が異常終了する場合は、簡単に修正できる可能性がある再現可能なバグが見つかりました。セクション1.6「質問またはバグをレポートする方法」の手順を使用して、テーブルおよびバイナリログをバグデータベースに FTP で送信してください。サポートのお客様の場合は、MySQL カスタマサポートセンター (http://www.mysql.com/support/) を使用して MySQL チームにその問題を通知し、可能な限り早く修正してもらうことができます。