WordPressのデータベース接続確立エラーを解決する完全ガイド(Error Establishing a Database Connection)

データベース接続確立エラー(Error Establishing a Database Connection) SOSブログ
この記事の監修者・著者

Web制作歴29年。Webプロデューサー、Webマーケター、Webディレクター、Webデザイナー、Webエンジニアなど、様々なポジションでWeb制作に携わってきました。

主宰するホームページ作成教室には全国から受講生が集まっています。

このたび、Webトラブル何でも相談窓口を開設しました。
Webサイトのトラブル解決をサポートします!

コナン先生(小南邦雄)をフォローする
  1. 1.はじめに:画面が真っ白になっても焦らないでください
  2. 2.そもそも、WordPressはどうやって動いているの?
    1. 1.サイトが表示される仕組み(データの読み込み手順)
    2. 2.接続に必要な「4つの情報」
  3. 3.「何もしていない」のにエラーが出るのはなぜ?(受動的要因)
    1. 1.知らない間に実行された「自動更新」の失敗
    2. 2.データベースサーバー自体がダウンしている
    3. 3.メモリ不足で強制終了された(OOM Killer)
    4. 4.ディスク容量がいっぱい(Disk Full)
    5. 5.外部からの攻撃(ハッキング)
  4. 4.「操作をした後」に起こるエラー(能動的要因)
    1. 1.サーバーのお引越し・ドメイン変更
    2. 2.データベースのパスワード変更
    3. 3.プラグインやテーマの「手動」追加・編集
    4. 4.wp-config.php を自分で編集した
  5. 5.診断編:どこが悪いのか突き止めよう!
    1. 1.表側と裏側(管理画面)を見比べる
    2. 2.「テスト用ファイル」で接続確認(プロの技)
  6. 6.解決編①:設定ファイル(wp-config.php)を直す
    1. 6.1 正しい情報を確認して書き換える
    2. 2.接頭辞(プレフィックス)の確認
  7. 7.解決編②:壊れたデータベースを修復する
    1. 1.WordPress内蔵の「隠し修復ツール」を使う
    2. 2.phpMyAdminを使って手動で直す
  8. 8.解決編③:サーバー側の問題を解決する
    1. 1.サービスを再起動する(VPS/専用サーバーの方)
    2. 2.ディスク容量を空ける
    3. 3.ホスティング会社へ問い合わせる
  9. 9.特殊なケース:ハッキングが疑われる場合
    1. 1.ファイルの浄化と鍵の交換
    2. 2.パーミッション(権限)を厳しくする
  10. 10.もう二度と起こさないために(予防策)
    1. 1.バックアップは「外」に保存する
    2. 2.サイトヘルスをチェックする
    3. 3.サーバーのスペックを見直す
  11. 11.まとめ

1.はじめに:画面が真っ白になっても焦らないでください

WordPressサイトを運営していて、突然画面が真っ白になり、「データベース接続確立エラー(Error Establishing a Database Connection)」という文字だけが表示されたら、誰でも心臓が止まるような思いをしますよね。積み上げてきた記事やデザインが消えてしまったのではないかと不安になるはずです。

でも、安心してください。このエラーは「データが消えた」という意味ではありません。WordPressというシステムが、データの保管場所である「データベース」と一時的に連絡が取れなくなっているだけ(繋がらなくなっているだけ)なんです。

「何もしていないのに突然起きた」「設定をいじったら見れなくなった」…どんな状況にも必ず「論理的な原因」があります。サーバーの混雑、ちょっとした設定ミス、あるいは見えない部分でのシステムダウンなど、理由は様々です。

この記事では、この厄介なエラーがなぜ起きるのか、そしてどうすれば直るのかを、専門用語をなるべくわかりやすく解説しながら、一つひとつ丁寧に紐解いていきます。

初心者の方から、自分でサーバーを管理している方まで、この記事を読めば解決の糸口が必ず見つかるはずです。

2.そもそも、WordPressはどうやって動いているの?

エラーを直す前に、「WordPressとデータベースがどうやって連携しているのか」を知っておきましょう。ここを理解すると、なぜこのデータベース接続確立エラー(Error Establishing a Database Connection)が出るのかがスッキリ分かります。

1.サイトが表示される仕組み(データの読み込み手順)

あなたが自分のサイトにアクセスしたとき、裏側では目にも止まらぬ速さで、次のような「データの受け渡し」が行われています。

  • ステップ1:アクセスを受ける
    読者があなたのサイトのURLをクリックします。
  • ステップ2:WordPressが起動
    サーバーの中でWordPressのプログラム(PHP)が動き出します。
  • ステップ3:接続情報の確認
    WordPressはまず、設定ファイル(wp-config.php)を読み込みます。ここには「データベースにログインするためのIDやパスワード」が書かれています。
  • ステップ4:データベースへの接続(ログイン試行)
    そのIDとパスワードを使って、記事データが入っている「データベース」へ接続(ログイン)しようとします。
  • ステップ5:データの取得と表示
    無事に接続できたら、記事の本文やタイトルを取り出して、私たちが普段見ているWebページの形にして画面に表示します。

データベース接続確立エラー(Error Establishing a Database Connection)が表示されるのは、このステップ4で失敗したときです。

WordPressが「データを取り出したいです!」とデータベースにお願いしたのに、「パスワードが違います」や「今は忙しくて対応できません」と断られてしまった状態。これがエラーの正体です。

2.接続に必要な「4つの情報」

WordPressがデータベースに接続(ログイン)するためには、以下の4つの情報が一文字も間違わずに wp-config.php に書かれている必要があります。

これはいわば、データベースに入るための「入館証」のようなものです。

設定項目wp-config.php での表記これは何?よくある間違い
データベース名DB_NAMEデータの保管場所の名前似ているけど違う名前を指定している
ユーザー名DB_USERデータベースを使う人の名前ユーザーを作り忘れている、綴り間違い
パスワードDB_PASSWORDその人のパスワード変更したのに古いまま、余計なスペースが入っている
ホスト名DB_HOSTデータベースがあるサーバーの場所localhost でいいと思い込んでいる(実は違う場合がある)

この4つのうち、どれか一つでも間違っていると、セキュリティのために接続は拒否されます。パスワードが一文字違うだけで、サイト全体が表示されなくなってしまうのです。

3.「何もしていない」のにエラーが出るのはなぜ?(受動的要因)

「昨日は見れていたのに、今朝起きたらデータベース接続確立エラー(Error Establishing a Database Connection)になっていた。設定なんて変えていないのに…」

これは非常によくあるケースです。あなたが触っていなくても、サーバー側で環境が変わっていることがあるからです。

1.知らない間に実行された「自動更新」の失敗

最近のWordPressやレンタルサーバーは、セキュリティのためにプラグインやテーマ、WordPress本体を「自動」で更新する機能がついています。これが原因で、あなたが寝ている間にエラーが引き起こされることがあります。   

  • 何が起きた?
    夜中に自動更新が走ったけれど、更新中にサーバーがタイムアウトしたり、ファイルが壊れたりして、中途半端な状態で止まってしまったケースです。
  • 相性の悪さ
    更新された新しいプラグインと、現在のサーバー環境(PHPのバージョンなど)の相性が悪く、エラーを吐き出してサイト全体を止めてしまうこともあります。
  • データベースへの負荷
    自動更新の直後に、プラグインがデータベースの中身を書き換える「データ移行処理」を裏側で開始することがあります。これが重すぎて、データベースサーバーがパンクしてしまうこともあります。

2.データベースサーバー自体がダウンしている

最も単純かつ深刻な原因です。あなたのサイト(WordPress)のプログラムは元気でも、接続先のデータベースのシステムが停止(ダウン)している状態です。

  • 何が起きている?
    データの保管庫自体が動いていないので、WordPressがいくら呼びかけても返事が返ってきません。
  • 共有サーバーの「巻き添え」
    格安のレンタルサーバーなどの「共有プラン」では、一つの大きなサーバーの中にたくさんの人のサイトが同居しています。もし、同じサーバーに住んでいる「お隣さん」のサイトにものすごいアクセス集中があったりすると、サーバー全体が重くなり、あなたのデータベースも巻き添えで停止することがあります。

3.メモリ不足で強制終了された(OOM Killer)

VPS(仮想専用サーバー)やクラウドを使っている方によくあるのがこれです。「OOM Killer(オー・オー・エム・キラー)」という機能が関係しています。

  • どんな現象?
    サイトへのアクセスが急増したり、重たいバックアップ処理が走ったりして、サーバーのメモリ(作業領域)がいっぱいになります。
  • システムの自己防衛
    メモリが完全に足りなくなると、サーバー全体がフリーズしてしまいます。それを防ぐために、Linux(OS)は「今一番メモリを使っているプログラムを強制的に終了させて、空きを作ろう」と判断します。
  • 狙われるのは誰?
    データベースは構造上たくさんのメモリを使うので、真っ先にこの機能の標的になり、突然強制終了されてしまうのです。

4.ディスク容量がいっぱい(Disk Full)

意外と見落としがちなのが、「サーバーの保存容量が満タン」という状態です。

  • なぜエラーになる?
    データベースは動くときに、一時的な作業用ファイルを作ったり、記録(ログ)を残したりします。ディスクが満タンだと、この「作業用ファイル」すら作れなくなるため、データベースは「もう仕事できない!」と動作を停止してしまいます。
  • その他の症状
    この場合、WordPressの管理画面にログインできなくなったり、画像のアップロードができなくなったりといったトラブルも一緒に起きていることが多いです。

5.外部からの攻撃(ハッキング)

悲しいことですが、悪意のある第三者によって「何もしていない」状態が壊されることもあります。

  • 改ざん
    ハッカー(悪い人)が勝手にサーバーに侵入して、wp-config.php の中身を書き換え、自分の用意したウイルス入りのデータベースに接続させようとすることがあります。
  • ファイル破損:
    攻撃者が無理やりファイルを書き換えた結果、ファイルが壊れてしまい、正しい情報が読み込めなくなっているケースもあります。

4.「操作をした後」に起こるエラー(能動的要因)

次に、ご自身で何か作業をした直後にデータベース接続確立エラー(Error Establishing a Database Connection)が出た場合です。原因は明確なので、冷静に対処すればすぐに直ります。

1.サーバーのお引越し・ドメイン変更

WordPressのトラブルで一番多いのがこのタイミングです。

  • 設定の書き換え忘れ
    古いサーバーからファイルをコピーしてきたとき、wp-config.php の中身が「古いサーバーの情報」のままになっていませんか? 新しいサーバーでは、データベース名やユーザー名が変わることが多いので、必ず新しい環境に合わせて書き換える必要があります。
  • DNSの反映待ち
    ドメイン(URL)の設定を変えた直後は、インターネット上で新しい住所が行き渡るまで、接続が不安定になりがちです。

2.データベースのパスワード変更

セキュリティのためにパスワードを変えるのは素晴らしいことですが、手順に注意が必要です。

  • 片方しか変えていない
    レンタルサーバーの管理画面でデータベースのパスワードを変更しても、WordPress側(wp-config.php)に書かれているパスワードは自動では変わりません。サーバー側のパスワードを変えたら、必ずWordPress側のファイルに書いてあるパスワードも手動で書き換える必要があります。

3.プラグインやテーマの「手動」追加・編集

  • ファイル破損
    FTPソフトなどで手動アップロードしている最中に通信が切れたりすると、ファイルが中途半端な状態で保存され、エラーを引き起こすことがあります。
  • リソースの使いすぎ
    新しく入れたプラグインが、データベースに対して「データを全部見せて!」といった無茶な要求(クエリ)を大量に投げかけ、データベースをパンクさせてしまうことがあります。「接続数が多すぎます(Too many connections)」といって拒絶されるケースです。

4.wp-config.php を自分で編集した

  • うっかりミス
    ネットの情報をコピペして設定ファイルを編集したとき、全角スペースが入ったり、必要な記号(';)を誤って消してしまったりしていませんか? プログラムは一文字の間違いも許してくれません。
  • 文字コードの罠
    Windowsのメモ帳などで保存すると、ファイル形式(BOM付きUTF-8など)が変わってしまい、読み込めなくなることがあります。編集には必ずコード用のエディタ(VS Codeなど)か、レンタルサーバーの管理画面(コントロールパネル)にあるファイルマネージャーを使いましょう。

5.診断編:どこが悪いのか突き止めよう!

解決策を試す前に、まずは「何が起きているのか」を診断しましょう。やみくもに触ると傷口を広げてしまうかもしれません。

1.表側と裏側(管理画面)を見比べる

サイトの表側(トップページなど)と、管理画面(/wp-admin/)の両方にアクセスしてみてください。エラーメッセージに違いはありますか?

両方で、「データベース接続確立エラー」(Error Establishing a Database Connection)が出る

  • 診断
    データベースのパスワードなどの情報が間違っているか、データベースサーバー自体がダウンしています。
  • やるべきこと
    wp-config.php の確認、サーバーの再起動。
    エックスサーバーなどのレンタルサーバー(共有プラン)をお使いの方は、自分で「サーバーの再起動」はできません。公式サイトの「障害情報」を確認するか、しばらく時間をおいてください。それでも直らない場合はサポートへの問い合わせが必要です。
    VPSや専用サーバーをお使いの方は、コマンドでMySQLを再起動してください。

表側はエラーだが、管理画面では「データベースの修復が必要」と出る

  • 診断
    接続自体はできています! でも、中身のデータ(テーブル)が壊れていて読めない状態です。
  • やるべきこと
    データベースの修復ツールを使います(後述)。

2.「テスト用ファイル」で接続確認(プロの技)

WordPress本体の問題なのか、純粋にデータベース接続の問題なのかをハッキリさせるために、WordPressを通さずに接続テストをする方法があります。

手順

パソコンでテキストエディタを開き、以下のコードをコピペして db-test.php という名前で保存してください。

<?php
// ここにwp-config.phpと同じ情報を入れます
$link = mysqli_connect('ホスト名', 'ユーザー名', 'パスワード');
if (!$link) {
    die('接続失敗: '. mysqli_error($link));
}
echo '接続成功!データベースは元気です。';
mysqli_close($link);
?>

※ ホスト名、ユーザー名、パスワード の部分は、現在の wp-config.php に書いてあるものと同じにしてください。

  1. FTPソフトまたはファイルマネージャーを使って、このファイルをWordPressが入っている場所(wp-config.phpと同じ場所)にアップロードします。
  2. ブラウザで https://あなたのドメイン/db-test.php にアクセスします。

結果の判定:

結果診断内容次のアクション
「接続成功!」データベースサーバーもパスワードも正常です。
原因はWordPress側(ファイルの破損、プラグインの悪さ)にあります。
プラグインを止めてみる、WordPressのファイルを入れ直す。
「接続失敗」データベースサーバーが落ちているか、入力した情報が間違っています。
WordPressのせいではありません。
パスワードの再確認、サーバー会社へ問い合わせ。

6.解決編①:設定ファイル(wp-config.php)を直す

診断で「情報の不一致」が疑われる場合、最初に見るべきは wp-config.php です。

6.1 正しい情報を確認して書き換える

FTPソフトやサーバーの管理画面の「ファイルマネージャー」を使って、wp-config.php を開きましょう。

チェック1:基本の4項目

サーバーの管理画面と見比べて、以下の部分が一字一句合っているか確認してください。

PHP

define( 'DB_NAME', 'your_database_name' ); // データベース名
define( 'DB_USER', 'your_database_user' ); // ユーザー名
define( 'DB_PASSWORD', 'your_db_password' ); // パスワード
define( 'DB_HOST', 'localhost' ); // ホスト名

チェック2:「localhost」の罠に注意!

解説サイトなどでは「ホスト名は localhost でOK」と書かれていることが多いですが、サーバーによっては違います。ここが間違っていると絶対に繋がりません。

レンタルサーバーホスト名の書き方(例)
エックスサーバー基本は localhost(※古いサーバーや一部環境では mysql***.xserver.jp の場合あり)
ロリポップ!mysql***.phy.lolipop.lan (絶対にlocalhostではありません!)
ConoHa WINGlocalhost またはIPアドレス(管理画面の「データベース」情報で必ず確認してください)
さくらインターネットmysql***.db.sakura.ne.jp (localhostではありません)
AWS (RDS)長いURLのようなエンドポイント

チェック3:パスワードを「あえて」変えてみる

「パスワードは合ってるはず…」と思っていても、念のため同期させましょう。

  • サーバーの管理画面で、データベースユーザーのパスワードを新しいものに変更します。
  • その新しいパスワードをコピーして、wp-config.php の DB_PASSWORD の部分に貼り付けます。これで確実に一致します。

2.接頭辞(プレフィックス)の確認

接続はできているのに「テーブルがない」と言われる場合は、これのせいです。

$table_prefix = 'wp_';

標準は wp_ ですが、セキュリティのために wp123_siteA_ などに変えている場合があります。
phpMyAdminで実際のデータベースを見て、テーブル名の頭に何がついているか確認して合わせましょう。

7.解決編②:壊れたデータベースを修復する

WordPressの管理画面で「データベースの修復が必要」と言われた場合、データの中身が少し散らかっているだけかもしれません。WordPressには自動で整理整頓してくれる機能があります。

1.WordPress内蔵の「隠し修復ツール」を使う

これは管理画面に入れなくても使える便利な機能です。

手順

  • wp-config.php を開き、/* 編集が必要なのはここまでです */ という行の直前に、以下の一行を追加します。
    define('WP_ALLOW_REPAIR', true);
  • ブラウザで以下のURLにアクセスします。
    https://あなたのドメイン/wp-admin/maint/repair.php
  • 画面が出たら「データベースの修復」ボタンをクリックします。(「修復と最適化」は時間がかかるので、まずは修復だけでOKです)。
  • 「完了しました」と出たら、サイトを確認してください。
  • 【超重要】 直ったら、さっき wp-config.php に追加した行を必ず削除してください。これ残したままだと、誰でもあなたのデータベースをいじれてしまい、大変危険です!

2.phpMyAdminを使って手動で直す

上のツールが使えない場合、サーバーの管理画面から行ける「phpMyAdmin」を使います。

手順

  • サーバーの管理画面(コントロールパネル)からphpMyAdminにログインします。
  • 左側のメニューから、自分のデータベースを選択します。
  • テーブルの一覧が表示されるので、一番下の「すべてチェックする」にチェックを入れます。
  • 「チェックしたものを…」というプルダウンメニューから「テーブルを修復する」を選びます。
  • しばらく待って、すべての項目が OK になれば完了です。

8.解決編③:サーバー側の問題を解決する

ここまでやってもダメなら、問題はサーバーの「インフラ」部分にあります。

1.サービスを再起動する(VPS/専用サーバーの方)

自分でコマンドラインを操作できる方は、MySQLを再起動するのが手っ取り早いです。

コマンド例:

  • sudo service mysql restart
  • sudo systemctl restart mysqld

再起動して直るなら、一時的なメモリ不足などが原因です。頻発するならプランの見直しが必要です。

2.ディスク容量を空ける

「Disk Full」エラーの場合、不要なファイルを消さない限り動きません。

  • 確認方法
    SSHで df -h コマンドを打つか、サーバーの管理画面からディスク使用量を確認します。
  • 消すべきもの
    古いバックアップファイル
    肥大化したエラーログ(debug.logerror_log
    一時ファイル置き場(/tmp)の中身

3.ホスティング会社へ問い合わせる

レンタルサーバー(共有サーバー)を使っていて、ディスクも空いているし設定も合っている…という場合は、ユーザーの手には負えません。サポートへ連絡しましょう。

ただ「繋がりません」と言うより、以下のように伝えるとスムーズです。

問い合わせ例文:

件名:データベース接続確立エラーについての調査依頼

お世話になります。(ドメイン名)を運営している者です。

現在、「データベース接続確立エラー」が表示され、サイトが表示できません。

以下の確認は行いましたが、改善しませんでした。
(※確認を行った場合)

  1. wp-config.php の記述確認(DB名、ユーザー、パスワード、ホスト名)
  2. 独自のPHPファイルによる接続テスト(結果:接続失敗)

サーバー側でMySQLのダウンや、リソース制限などがかかっていないかご確認いただけますでしょうか?

よろしくお願いいたします。

9.特殊なケース:ハッキングが疑われる場合

もし wp-config.php の中に、見たこともない変な英数字の羅列が書き込まれていたら、ハッキングされている可能性があります。

1.ファイルの浄化と鍵の交換

  • ファイルの作り直し
    汚染された wp-config.php は捨てて、公式から wp-config-sample.php をダウンロードし、正しい情報を書き込んで作り直しましょう。
  • 認証キー(Salts)の交換
    ハッカーがログイン状態を維持しているかもしれません。wp-config.php の中にある8行くらいの「認証ユニークキー」をすべて新しいものに書き換えてください。

    自動生成ツール:
    https://api.wordpress.org/secret-key/1.1/salt/

    これをやると、今ログインしている全員(自分も、ハッカーも)が強制的にログアウトされるので安全です。

2.パーミッション(権限)を厳しくする

wp-config.php は最重要ファイルです。他人から書き換えられないように、ファイルの権限(パーミッション)を設定しましょう。

  • 推奨設定
    400(自分だけが読める。書き込みは禁止)
  • レンタルサーバー(共有サーバー)の場合
    600(自分だけ読み書きOK)など。

FTPソフトでファイルを右クリックし、「パーミッションの変更」から数値を変えられます。

10.もう二度と起こさないために(予防策)

やっとサイトが戻ってきましたね! でも、同じ恐怖を味わわないために、これだけはやっておきましょう。

1.バックアップは「外」に保存する

サーバーの中にバックアップがあっても、サーバーごとダウンしたら取り出せません。

「UpdraftPlus」などのプラグインを使って、Google DriveやDropboxなどの外部クラウドへ自動保存するように設定しましょう。これなら、サーバーが壊れてもデータは無事です。

2.サイトヘルスをチェックする

WordPressの管理画面にある「ツール」→「サイトヘルス」を時々見てあげてください。「データベースのバージョンが古い」などの警告が出ていたら、早めに対応することでトラブルを未然に防げます。

3.サーバーのスペックを見直す

もし、対策をしても頻繁にこのエラーが出るようなら、それは「サイトが成長して、今のサーバーでは手狭になった」という嬉しい悲鳴かもしれません。

アクセス数が増えているなら、より高性能なプランや、WordPress専用の強力なサーバーへの引っ越しを検討する時期です。

11.まとめ

データベース接続確立エラー(Error Establishing a Database Connection)は、確かに怖いエラーですが、決して解決できないエラーではありません。

  • まずは深呼吸:データは消えていません。
  • 冷静に診断:表側と裏側(管理画面)を確認。
  • 基本の確認wp-config.php の4つの情報をチェック。
  • 修復:データベースの修復ツールやサーバーの状況確認。

この手順を一つひとつ踏めば、必ず出口は見えてきます。この経験を糧に、より強く、より安定したサイト運営を目指してくださいね!