ある日突然「データベース接続確立エラー」

昨日まで普通に見えていたサイトが、ある日アクセスすると「データベース接続確立エラー(Error establishing a database connection)」という短いメッセージだけになっている――。WordPressを運用していると、ときどき出くわすトラブルです。記事も管理画面も表示されず、真っ青になった方も多いのではないでしょうか。

この記事では、このエラーの原因と直し方を解説します。実は今回、検証のために自分のテスト環境で、わざとこのエラーを再現してみました。その結果わかった「厄介な特徴」も含めて、実践的にお伝えします。

そもそも「データベース接続確立エラー」とは

WordPressは、記事や設定などのデータをデータベース(MySQL/MariaDB)に保存しています。ページを表示するたびに、WordPress本体がデータベースへ接続し、必要なデータを取り出しています。

つまりこのエラーは、WordPress本体とデータベースの間の「接続」が確立できなかったことを意味します。データが消えたわけではなく、「つなげない」だけのことが多いので、まずは落ち着いてください。原因を正しく切り分ければ、多くは元に戻せます。

厄介なのは「原因が違っても、画面が同じ」こと

今回の検証で、あらためて実感したことがあります。それは、原因が何であっても、表示されるエラー画面はまったく同じだということです。

試しに、テスト環境のWordPressで2通りの壊し方をしてみました。ひとつはデータベースのパスワードを間違えた状態、もうひとつは存在しないデータベース名を指定した状態です。原因はまったく別物です。ところが――どちらも画面上はまったく同じ「データベース接続確立エラー」。表示からは、どちらが原因なのか一切わかりませんでした。

だからこそ、画面を見て慌てるのではなく、原因を1つずつ切り分けていくことが解決の近道になります。考えられる原因は、主に次のとおりです。

原因 よくある状況
認証情報の誤り DBのユーザー名・パスワードが違う(wp-config.php の編集ミス、サーバー移転後など)
接続先の誤り DBホスト名(DB_HOST)が違う(移転後に変更し忘れ)
データベース名の誤り 指定したデータベースが存在しない
データベースの停止・過負荷 サーバー側のMySQLが落ちている/アクセス集中で応答できない
データベースの破損 テーブルが壊れて読み書きできない

まず確認したいこと(運営者向け)

専門的な作業に入る前に、まずは次の2点を思い出してください。

  • 直前に何をしたか:サーバーを移転した/wp-config.phpを編集した/プラグインを入れた直後、などは原因の手がかりになります
  • 今だけの現象か:時間をおくと直る場合は、アクセス集中やサーバー側の一時的な過負荷が疑われます

とくにレンタルサーバーの共用プランでは、アクセスが集中した瞬間だけこのエラーが出て、しばらくすると戻ることがあります。この場合はサイト側の設定ミスではなく、サーバーの負荷が原因です。頻発するならサーバーのプラン見直しも検討しましょう。何もしていないのに突然出た場合は、サーバー会社の障害情報も確認してみてください。

ここまでのまとめと、原因の特定へ

ここまでを整理すると、このエラーは「WordPressとデータベースがつなげない」状態で、原因は複数あるのに画面は同じ、というのが厄介な点でした。ここからは、実際に原因を特定して直す手順を、少し技術的な内容も交えて解説します。自分で触るのが不安な場合は、無理をせず専門家に相談するのが安全です。

【技術解説】原因の切り分けと直し方

切り分けの中心になるのが、WordPressの設定ファイル wp-config.php です。ここに、データベースへの接続情報が書かれています。

この4つが、サーバーの実際の情報と一字一句合っているかを確認します。とくに次の点に注意してください。

  • DB_HOST はサーバーごとに違う:ローカル環境では localhost ですが、レンタルサーバーでは mysql◯◯◯.xserver.jp のような専用のホスト名を指定します。サーバー移転後にここを直し忘れると、必ずこのエラーになります
  • パスワードのコピーミス:前後の空白や、記号の全角・半角混入がよくある落とし穴です
  • データベース名の取り違え:サーバーに複数のDBがある場合、別のDB名を書いてしまうことがあります
wp-config.phpのデータベース設定を確認するイメージ

wp-config.php の値が正しいのにエラーが出る場合は、データベース側を疑います。サーバーの管理画面(phpMyAdmin など)にログインできるか、対象のデータベースが存在するか、MySQLが起動しているかを確認します。ここでphpMyAdminにもログインできないなら、原因はWordPressではなくデータベースサーバー側にある可能性が高いと切り分けられます。

データベースの破損が疑われるとき

接続情報が正しく、DBも動いているのにエラーが続く場合は、テーブルの破損が考えられます。WordPressには修復機能があり、wp-config.php に次の1行を一時的に追加すると使えます。

追加後、ブラウザで /wp-admin/maint/repair.php にアクセスすると、下のような修復画面が開きます。「データベースを修復」と「修復して最適化」のボタンから、壊れたテーブルの修復を試せます。

この状態はログインなしで誰でも修復ページにアクセスできてしまうため、修復が終わったら必ずこの1行を削除してください。実際、上の画面も検証のために一時的に有効化して確認し、スクリーンショットを撮ったあとすぐに設定を削除しています。

レンタルサーバー移転直後は、とくに要注意

このエラーがもっとも起きやすいのが、サーバーを移転した直後です。移転先ではデータベースのホスト名・ユーザー名・パスワードがすべて変わるため、wp-config.php を新しい情報に合わせて書き換える必要があります。ひとつでも古いままだと、このエラーになります。サーバー移管の進め方は放置サイトの保守移管・引き継ぎの進め方もご覧ください。

また、真っ白になる「ホワイトスクリーン」や、ログインできないトラブルとは原因も対処も異なります。症状を正しく見分けることが、遠回りしない第一歩です。

まとめ:慌てず、原因を1つずつ切り分ける

「データベース接続確立エラー」は、原因が複数あるのに画面は同じという、切り分けが要のトラブルです。まずは直前の操作を思い出し、wp-config.php の接続情報(DB名・ユーザー・パスワード・ホスト)を確認、それでもダメならデータベース側を疑う――この順番で進めれば、多くは解決できます。データそのものが消えていることは少ないので、落ち着いて対応しましょう。

私たちEdel Heartsは、こうしたWordPressのトラブルを原因特定から復旧まで対応するWordPress専門チームです。「触るのが怖い」「サーバー移転で出てしまった」という段階でも、お気軽にご相談ください。

この記事をシェア