XAMPP を開いて MySQL の起動ボタンをクリックすると、エラーが発生します。直前に起動したのですが、今は動作しません。
12:19:12 PM [mysql] MySQL アプリを起動しようとしています...
12:19:12 PM [mysql] ステータスの変更が検出されました: 実行中
12:19:13 PM [mysql] ステータスの変更が検出されました: 停止
12:19:13 PM [mysql] エラー: MySQL が予期せずシャットダウンしました。
12:19:13 PM [mysql] これは、ポートがブロックされている、依存関係が不足している、
12:19:13 PM [mysql] 権限が不適切、クラッシュ、または別の方法によるシャットダウンが原因である可能性があり
ます 12:19:13 PM [mysql] [ログ] ボタンを押してエラー ログを表示し、
12:19:13 PM [mysql] Windows イベント ビューアーでさらに手がかりを確認してください 12:19:13 PM [mysql] さらにサポートが必要な場合は、この12:19:13 PM [mysql] ログ ウィンドウ全体をコピーしてフォーラムに
投稿してください
エラー ログの内容は次のとおりです。
2013-08-02 12:19:12 4536 [注記] プラグイン 'FEDERATED' は無効です。
2013-08-02 12:19:12 f64 InnoDB: 警告: innodb_additional_mem_pool_size の使用は非推奨です。 このオプションは、オプション innodb_use_sys_malloc および InnoDB の内部メモリ アロケータとともに、将来のリリースで削除される可能性があります。
2013-08-02 12:19:12 4536 [注記] InnoDB: InnoDB メモリ ヒープは無効です
2013-08-02 12:19:12 4536 [注記] InnoDB: ミューテックスと rw_locks は Windows インターロック関数を使用します
2013-08-02 12:19:12 4536 [注記] InnoDB: 圧縮テーブルは zlib 1.2.3 を使用します
2013-08-02 12:19:12 4536 [注記] InnoDB: CPU crc32 命令を使用していません
2013-08-02 12:19:12 4536 [注記] InnoDB: バッファ プールを初期化しています。サイズ = 16.0M
2013-08-02 12:19:12 4536 [注記] InnoDB: バッファ プールの初期化が完了しました
2013-08-02 12:19:12 4536 [注記] InnoDB: サポートされている最高のファイル形式は Barracuda です。
2013-08-02 12:19:12 4536 [注記] InnoDB: ibdata ファイルのログ シーケンス番号 0 および 0 が、ib_logfiles のログ シーケンス番号 1616798 と一致しません。
2013-08-02 12:19:12 4536 [注記] InnoDB: データベースは正常にシャットダウンされませんでした。
2013-08-02 12:19:12 4536 [注記] InnoDB: クラッシュ リカバリを開始しています。
2013-08-02 12:19:12 4536 [注記] InnoDB: .ibd ファイルからテーブルスペース情報を読み取っています...
最も重要なエラーメッセージは次のとおりです。
2013-08-02 12:19:12 4536 [エラー] InnoDB:以前に開いたテーブルスペースを開こうとしました。以前のテーブルスペースmysql/innodb_table_stats は、ファイルパス: .\mysql\innodb_table_stats.ibdでスペース ID: 1 を使用しています。ファイルパス: .\xat\payments.ibdでスペース ID: 1 を使用しているテーブルスペースxat/paymentsを開くことができません。
ログの残り:
InnoDB: エラー: 単一テーブル テーブルスペース ファイル .\xat\payments.ibd を開けませんでした。InnoDB
:
InnoDB ログ内のログ レコードをテーブルに適用できない場合、テーブルが破損する可能性があるため、クラッシュ リカバリを続行しません。InnoDB
: 問題を修正して mysqld を起動するには:
InnoDB: 1) ファイルに権限の問題があり、mysqld が
ファイルを開けない場合は、権限を変更する必要があります。InnoDB
: 2) テーブルが不要であるか、バックアップから復元できる場合は、 .ibd ファイルを削除できます。InnoDB は通常のクラッシュ リカバリを
実行し、そのテーブルを無視します。InnoDB: 3) ファイル システムまたはディスクが壊れていて、 .ibd ファイルを削除できない場合は、my.cnf で innodb_force_recovery > 0 を設定し、ここで InnoDB にクラッシュ リカバリを強制的に続行させることができます。
これらのエラーの原因は何ですか? また、どうすれば修正できますか?
ベストアンサー1
重要:ファイルを削除しないでください。ibdata1
すべてのデータベースが破壊される可能性があります。
代わりに、まずXAMPP に含まれているMySQL バックアップ フォルダーを使用してみてください。次の手順を実行してください。
- フォルダ名
mysql/data
をmysql/data_old
mysql/backup
フォルダのコピーを作成し、名前を付けますmysql/data
- すべてのデータベースフォルダを
mysql/data_old
からにコピーしますmysql/data
(mysql
、performance_schema
、phpmyadmin
フォルダを除く) mysql/data_old/ibdata1
ファイルをmysql/data
フォルダにコピーする- XAMPPコントロールパネルからMySQLを起動する
そして、出来上がり!
一部のユーザーが述べているように、これは緊急時の解決策であり、永続的な解決策ではありません。障害はデータベースではなく、XAMPP の一部のファイルの誤動作に関連しているため、データを回復した後は、データをバックアップして XAMPP を再インストールすることを強くお勧めします。