エラー内容:
「Got error 176 “Read page with wrong checksum” from storage engine Aria」
このエラーは、データベースの内部エラーによりデータの読み取りが正しく行えない場合に発生します。本記事では、このエラーの原因と具体的な解決手順を解説します。
MySQLエラー176の原因と解決方法
エラー176とは?
MySQLエラー176は、ストレージエンジン「Aria」がディスクからデータを正しく読み取れない場合に発生します。
このエラーは通常、以下のような理由で発生します。
- データベースファイルの破損
- ハードウェアの障害
- 不完全なシャットダウン後のキャッシュ不一致(XAMPPでこれが特に多い要因)
主な原因
- ディスクエラー
ディスクの不良セクタやハードウェア障害により、ストレージエンジンがデータを正しく読み取れない場合があります。 - データファイルの破損
サーバーの突然の停止やクラッシュが原因で、Ariaファイルが破損することがあります。 - キャッシュ不整合
データベースが正しくシャットダウンされなかった場合、キャッシュ内の情報が破損している可能性があります。
解決方法:エラー修復の具体的手順
データベースのバックアップを取得
最初に、すべての重要なデータをバックアップしておいてください。
操作ミスした場合に復旧することが出来なくなります。
テーブルのチェック
以下のコマンドを実行し、問題のあるテーブルを特定します:
CHECK TABLE table_name;
テーブルの修復
エラーが特定されたら、修復コマンドで該当テーブルを修復します。
REPAIR TABLE table_name USE_FRM;
Ariaログのクリア
aria_log_control
ファイルを削除して再生成することで、Ariaのキャッシュをリセットします。
rm /var/lib/mysql/aria_log_control
MySQLの再起動
最後にMySQLサーバーを再起動して、すべての変更を適用して修復完了です。
systemctl restart mysql
予防策
- 定期的なバックアップ
定期的にデータベース全体をバックアップしましょう。 - ハードウェアの健全性チェック
ディスクやサーバーの状態を定期的にチェックしましょう。 - 適切なシャットダウン
サーバーを停止する際は、正しい手順でシャットダウンしましょう。
XAMPP環境下でMySQLエラー176が発生した場合
以下、XAMPP環境下でMySQLエラー176が発生した場合の具体的な対処手順です。
データベースファイルの場所を確認
XAMPPではデータベースファイルが通常、以下のディレクトリに保存されています。
xampp/mysql/data/
エラーが発生したテーブルのデータファイル(.frm
, .MYD
, .MYI
, または .aria
など)を特定してください。
バックアップの取得
問題解決の前に、データベース全体をバックアップします。以下のいずれかで対処してください。
- XAMPP Control Panelを利用したエクスポート: phpMyAdminを使ってデータをエクスポート。
- 直接コピー: ディレクトリ
xampp/mysql/data/
内の該当フォルダを別の場所にコピーします。
テーブルの修復
phpMyAdminを使用する方法
- XAMPP Control Panelを開き、MySQLが起動していることを確認します。
- phpMyAdminにアクセスします。
- 次にmysql > テーブル の順に左側のメニューを展開させます。
- テーブル一覧の中から db を選択して「テーブルを修復する修復」を実行します。
CLIを使用する方法
XAMPPのMySQLコマンドラインツールを使用して以下を実行します:
cd xampp/mysql/bin
mysql -u root -p
その後、以下のコマンドを入力:
USE database_name;
CHECK TABLE table_name;
REPAIR TABLE table_name USE_FRM;
キャッシュのクリア
XAMPPではaria_log_control
ファイルが破損している場合があります。
以下を実行して再生成します。
- XAMPPを停止します(MySQLとApacheを停止)。
- 次のファイルを削除します:
xampp/mysql/data/aria_log_control
- XAMPPを再起動します。
設定ファイルの確認
破損を防ぐために、my.ini
ファイル(xampp/mysql/bin/my.ini
)を編集し、以下の設定を追加または確認します。
[mysqld]
aria_repair_threads=1
aria_log_purge_type=immediate
編集後、MySQLを再起動してください。
ディスクエラーの検出と修正
XAMPP環境がWindows上で稼働している場合、ディスクエラーが原因であることもあります。
以下のコマンドを実行してディスクチェックを行います。
chkdsk /f
予防策
- 定期的なバックアップ: phpMyAdminやスクリプトを使って定期的にバックアップを行いましょう。
- XAMPPの正しいシャットダウン: XAMPP Control Panelから安全にMySQLを停止するよう心がけましょう。