【MySQL】MySQLエラー176の原因と解決方法 | Got error 176 “Read page with wrong checksum” from storage engine Aria の対処法

エラー内容:
「Got error 176 “Read page with wrong checksum” from storage engine Aria」

このエラーは、データベースの内部エラーによりデータの読み取りが正しく行えない場合に発生します。本記事では、このエラーの原因と具体的な解決手順を解説します。

 

sponsor link

MySQLエラー176の原因と解決方法


エラー176とは?

MySQLエラー176は、ストレージエンジン「Aria」がディスクからデータを正しく読み取れない場合に発生します。

このエラーは通常、以下のような理由で発生します。

  • データベースファイルの破損
  • ハードウェアの障害
  • 不完全なシャットダウン後のキャッシュ不一致(XAMPPでこれが特に多い要因)

 


主な原因

  1. ディスクエラー
    ディスクの不良セクタやハードウェア障害により、ストレージエンジンがデータを正しく読み取れない場合があります。
  2. データファイルの破損
    サーバーの突然の停止やクラッシュが原因で、Ariaファイルが破損することがあります。
  3. キャッシュ不整合
    データベースが正しくシャットダウンされなかった場合、キャッシュ内の情報が破損している可能性があります。

解決方法:エラー修復の具体的手順

データベースのバックアップを取得

最初に、すべての重要なデータをバックアップしておいてください。

操作ミスした場合に復旧することが出来なくなります。

 

テーブルのチェック

以下のコマンドを実行し、問題のあるテーブルを特定します:

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

 


予防策

  1. 定期的なバックアップ
    定期的にデータベース全体をバックアップしましょう。
  2. ハードウェアの健全性チェック
    ディスクやサーバーの状態を定期的にチェックしましょう。
  3. 適切なシャットダウン
    サーバーを停止する際は、正しい手順でシャットダウンしましょう。

 

XAMPP環境下でMySQLエラー176が発生した場合

以下、XAMPP環境下でMySQLエラー176が発生した場合の具体的な対処手順です。


データベースファイルの場所を確認

XAMPPではデータベースファイルが通常、以下のディレクトリに保存されています。

xampp/mysql/data/

エラーが発生したテーブルのデータファイル(.frm, .MYD, .MYI, または .ariaなど)を特定してください。


バックアップの取得

問題解決の前に、データベース全体をバックアップします。以下のいずれかで対処してください。

  • XAMPP Control Panelを利用したエクスポート: phpMyAdminを使ってデータをエクスポート。
  • 直接コピー: ディレクトリxampp/mysql/data/内の該当フォルダを別の場所にコピーします。

テーブルの修復

phpMyAdminを使用する方法

  1. XAMPP Control Panelを開き、MySQLが起動していることを確認します。
  2. phpMyAdminにアクセスします。
  3. 次にmysql > テーブル の順に左側のメニューを展開させます。
  4. テーブル一覧の中から 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ファイルが破損している場合があります。

以下を実行して再生成します。

  1. XAMPPを停止します(MySQLとApacheを停止)。
  2. 次のファイルを削除します:xampp/mysql/data/aria_log_control
  3. XAMPPを再起動します。

設定ファイルの確認

破損を防ぐために、my.iniファイル(xampp/mysql/bin/my.ini)を編集し、以下の設定を追加または確認します。

[mysqld]
aria_repair_threads=1
aria_log_purge_type=immediate

編集後、MySQLを再起動してください。


ディスクエラーの検出と修正

XAMPP環境がWindows上で稼働している場合、ディスクエラーが原因であることもあります。

以下のコマンドを実行してディスクチェックを行います。

chkdsk /f

予防策

  1. 定期的なバックアップ: phpMyAdminやスクリプトを使って定期的にバックアップを行いましょう。
  2. XAMPPの正しいシャットダウン: XAMPP Control Panelから安全にMySQLを停止するよう心がけましょう。

 

タイトルとURLをコピーしました