WordPressが急にError establishing a database connectionとエラーになった!

XAMPPで構築したWordPressのデータベースが急に壊れた件

さっきまで使っていたWordPressが表示されなくなった!

WordPressでコーポレートサイトを作るために、テスト環境としてWindows10のパソコンにXAMPP(ザンプ)を入れてコツコツとサイトを作成していました。

ちなみにZAMPPとは、Apatch、MySQL、PHPなど、一般的なレンタルサーバーと同じ環境を簡単に構築できるフリーソフトです。これがあると、爆速でWEBサーバー環境が構築できます。また、WordPressモジュールのインストーラーもあり、簡単にWordPressを使い始めることができます。

今回、使用していたパソコンの環境は簡単に以下の通り。

この環境で約1ヶ月程度作業をしていたら、XAMPP上のApatchやMySQLを再起動しないとWordPressが反応しないことがありました。サービスを再起動すれば直るので、あまり深く考えずに作業していました。

ところが...。

データベースエラー発生!

さっきまで動いていたWordPressの画面にデータベースエラーの文字が表示されるようになりました。

Database Error
Error establishing a database connection

データベースエラー
データベース接続の確立中にエラーが発生しました

WordPressの管理画面やサイトも全部この画面しか表示されなくなりました。

これらをやっても復旧できなくなりました。

phpMyAdminも見れなくなった

途中まで、XAMPPコントロールパネルにあるMySQLの[Admin]ボタン押すと、phpMyAdminは表示さていました。今思えば、この時点でデータベースのバックアップを取って置けば良かったと後悔。なぜなら、この後にMySQLのサービスを開始させても数秒後にシャットダウンされてしまうようになったからです...。

何度、[Start]ボタンを押しても以下のようになりました。当然、phpMyAdminにもアクセスできなくなりました...。

Error:MySQL shutdown unexpectedly.
This may be due to a blocked port, missing dependencies,
improper privileges, a crash, or shutdown by another method.
Press the Logs button to view error logs and check
the Windows Event Viewer for more clues
If you need more help, copy and post this
entire log windows on the forrums

エラー:MySQLが予期せずシャットダウンしました。
これは、ポートがブロックされている、依存関係がない、などの理由によるものです。
不適切な権限、クラッシュ、別の方法によるシャットダウンなどが考えられます。
[ログ]ボタンを押すと、エラーログが表示されます。
Windowsイベントビューアで詳細を確認する。
より多くの手がかりのためのWindowsイベントビューア
もっと助けが必要な場合は、このログウィンドウ全体をコピーしてフォーラムに投稿してください。

このエラー文を元に、ポートの重複や、Windowsイベントビューアを確認してみましたが、解決に至りそうな情報を見つけることはできませんでした。

ログを見る

XAMPPコントロールパネルにあるMySQLの[Logs]ボタンを押すと、以下のログが表示されました。同じような[ERROR]が複数回ありました。

[ERROR] InnoDB: The innodb_system data file 'idbdata1' must be writable
[ERROR] InnoDB: innodb_system データファイル 'idbdata1' は書き込み可能でなければならない。

[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] プラグイン「InnoDB」のinit関数がエラーを返しました。

[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] プラグイン'InnoDB'のSTORAGE ENGINEとしての登録に失敗しました。

[ERROR] Unknown /unsupported storage engine: InnoDB
[ERROR] 不明/サポートされていないストレージエンジン:InnoDB

[ERROR] Aborting
[ERROR] 中止します

ログを手掛かりにいろいろやってみた

ログやエラーの表示内容を元に、いろいろ検索して調べて辿り着いた情報の中から以下のことをためしましたが、全部ダメでした。

idbdata1の読み取り専用を解除

『'idbdata1' は書き込み可能でなければならない。』ということでしたが、プロパティを開くと、そもそも読み取り専用になっていませんでした。Everyoneフルコントロールを追加してもダメでした。

ログファイルの削除

指定のファイルをリネームして避けるか削除をしてみましたが、ダメでした。

my.iniに強制修復を追加

これもダメでした。

innodb_force_recovery = 1

ログファイルの容量を増やす

wait_timeout = 86400
max_allowed_packet = 1G
innodb_buffer_pool_size = 1G

WordPressのリペアを許可

wp-config.phpの最後部に以下を追加するとWordPressを修復できるかもしれない。ということで、やってみましたが、駄目でした。MySQL自体が起動しないのですから当然ですが...。

define('WP_ALLOW_REPAIR', true);

DATAフォルダの置換

以下のDATAフォルダのバックアップを取っておき、再インストールしたXAMPPのフォルダの新しいDATAフォルダをリネームして、バックアップをここに復元すれば復旧できるといった情報があったので、やってみましたが、またMySQLが起動しなくなりました。どうやら、このDATAフォルダ内のファイルが破損しているみたいです。それが、どのファイルなのかがまったく分かりませんでした。

DBファイルが壊れた原因はこれかも?

何度もXAMPPを再起動していたせいか、タスクバーのアイコンを見ると、XAMPPアイコンが何個も表されていました。よくわかりませんが、多重起動により、何らかの異常を積み重ねていたのかもしれません。それによって必要なファイルが壊れたのかもしれません。

また、XAMPPは管理者として実行しないといけないのかもしれません。Usersとして起動した場合、XAMPPを終了させる際に、エラーが出て強制終了をさせていました。これも故障の原因かもしれません。管理者として実行していた場合は終了時にエラーが出ることはありませんでした。

結局、XAMPPを再インストール&サイト再構築

結局、そうにもできなかったので、一番やりたくなかったXAMPPをアンインストールして、再度インストールし直しました。データはもちろん消えるので、WordPressのモジュールも再インストールし、まっさらな状態から、サイトを作り直しました。

参考サイト

wordpressの「データベース接続確立エラー」の処理方法について

https://kinsta.com/jp/blog/error-establishing-a-database-connection/

wordpressの「データベース接続確立エラー」の処理方法について

https://kinsta.com/jp/blog/error-establishing-a-database-connection/

PAGETOP