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

WordPress: Error Establishing a Database Connection error guide banner

結論

WordPressは、設定されたMySQLまたはMariaDBデータベースに接続できないと、「Error Establishing a Database Connection」と表示します。`wp-config.php` の `DB_NAME`、`DB_USER`、`DB_PASSWORD`、`DB_HOST` を確認し、データベースサーバーが利用可能で、そのユーザーが対象データベースにアクセスできることを確認してください。テーブルの破損も考えられますが、接続と権限の確認が完了した後にのみ調査してください。

要点

  • wp-config.php の DB_NAME、DB_USER、DB_PASSWORD、DB_HOST を、ホスティングプロバイダーから提供された現在の値と照合します。
  • MySQLまたはMariaDBが稼働していて到達可能であることを確認します。共有ホスティングの利用者は、ホスティングパネルを確認するか、ホストに問い合わせてください。
  • phpMyAdminまたはMySQLコマンドラインで正確な接続情報を使ってテストし、WordPressの設定上の問題とデータベースサーバーの問題を切り分けます。
  • 設定されたユーザーが対象のWordPressデータベースに割り当てられ、必要な権限を持っていることを確認します。
  • テーブルの確認や修復を行う前にデータベースをバックアップし、REPAIR TABLE を万能な解決策として扱わないでください。
レビュー日: 2026-09-25 WordPressのエラー
SA

Site Administrator

最終レビュー: September 25, 2026

このエラーの意味と見分け方

  • サイト全体で、多くの場合はすべてのフロントエンドページに「Error establishing a database connection」のみが表示されます。
  • /wp-admin/ も同じデータベース接続を使用するため利用できません。
  • 移行、ホスティングの変更、データベースの復元、手動での wp-config.php 編集、パスワードのリセット、データベースサーバーの再起動後にエラーが始まることがあります。
  • 一部のページだけが失敗し、データベースを使用する他のページが動作している場合は、完全なデータベース接続障害ではなく、ページ、プラグイン、テーマ、クエリ固有の問題である可能性があります。

可能性の高い順の主な原因

  1. wp-config.php の認証情報が正しくない — DB_NAME、DB_USER、DB_PASSWORD、DB_HOST のいずれかが現在のデータベース設定と一致していません。移行、復元、パスワード変更、手動編集の後に特によく発生します。
  2. MySQLまたはMariaDBサーバーが利用できない — サービスが停止またはクラッシュしたか、ホスティングのリソース問題によって利用できなくなっている可能性があります。
  3. データベースホストが正しくない — データベースが別のサーバーまたはコンテナで稼働している場合、localhost が正しくない可能性があります。一方、リモートホストの値が現在の環境と一致しなくなっている場合もあります。
  4. データベースユーザーの権限が不足している — ユーザー自体は存在していても、WordPressデータベースに割り当てられていないか、使用に必要な権限が不足している可能性があります。
  5. データベーステーブルが破損している — 書き込みの中断、不正なシャットダウン、ディスクの問題によってテーブルが破損することがあります。ただし、一般的には設定または可用性の問題より可能性は低いです。

修正方法

1フロントエンドと /wp-admin/の両方でエラーが発生していますか?2345
Diagnostic flow at a glance — full detail in the steps below.

1. 障害の範囲を確認する

公開サイトと /wp-admin/ を開きます。両方に接続エラーが表示される場合は、以下のデータベース確認を続けてください。1つのページまたは機能だけが失敗する場合は、データベース接続全体が利用できないと決めつけず、該当するプラグイン、テーマ、クエリ、アプリケーションエラーを調査してください。

2. MySQLまたはMariaDBが稼働しているか確認する

サービス管理を担当しているVPSまたは専用サーバーでは、該当するサービスのステータスを確認します。以下のコマンドは読み取り専用で、シェルアクセスが必要です。

bash
systemctl status mysql

サーバーがMariaDBを使用している場合は、次を確認します。

bash
systemctl status mariadb

共有ホスティングまたはマネージドホスティングでは、ホスティングパネルのデータベースステータス情報を確認するか、プロバイダーにサービスとリソース制限の確認を依頼してください。データベースサービスの再起動は、そのサーバーを管理しており、適切な権限があり、運用への影響を許容できることを確認した場合にのみ行ってください。再起動によってアクティブなデータベース接続が中断される可能性があります。

3. wp-config.php の4つのデータベース設定を確認する

SFTPまたはホスティングのファイルマネージャーで wp-config.php を開きます。次の値を、ホスティングパネルまたは移行記録にある現在のデータベース情報と照合します。

  • DB_NAME — WordPressが使用するデータベース
  • DB_USER — データベースのユーザー名
  • DB_PASSWORD — そのユーザーの現在のパスワード
  • DB_HOST — データベースサーバーのアドレスまたはホスト設定

古いデータベース名、期限切れのパスワード、誤ったホスト、意図しない空白や引用符の変更がないか確認します。移行、ホスティングの移転、データベースの復元、パスワードのリセット後も以前の値が有効だとは限りません。

4. WordPressの外部で同じ接続をテストする

wp-config.php の正確なデータベース名、ユーザー名、パスワード、ホストを使用して、phpMyAdminまたはMySQLコマンドラインで接続します。このテストでは、WordPressが使用するものと同じ環境および認証情報を使用してください。

  • 直接接続に失敗する場合は、WordPressのファイルを変更する前に、認証情報、データベースホスト、サーバーの可用性、ネットワークアクセスを調査します。
  • 直接接続に成功する場合は、基本的なサーバーおよび認証情報の経路は機能しています。続けて、データベースユーザーの割り当て、権限、テーブルの状態を確認します。

サポートを依頼するときに、パスワードや wp-config.php ファイル全体を決して公開しないでください。

5. データベースユーザーのアクセスと権限を確認する

ホスティングパネルのデータベースユーザーセクションで、wp-config.php に記載されたユーザーが正しいWordPressデータベースに割り当てられ、テーブルの読み取りと変更に必要な権限を持っていることを確認します。この確認は、新しいアカウントの下でデータベースを復元した後や、代替ユーザーを作成した後に特に重要です。

MySQLを直接管理している場合は、権限のある管理者が SHOW GRANTS でアカウントの権限を確認できます。対象のデータベースとアカウントを確認した後にのみ、ユーザーとデータベースの割り当てまたは権限を修正してください。その後、直接接続テストを再実行してサイトを再読み込みします。

6. 接続が機能してからテーブルの問題を確認する

データベースサーバーが利用可能で、正確な認証情報による直接テストが成功し、ユーザーにアクセス権がある場合は、phpMyAdminまたは権限のあるデータベースツールでWordPressのテーブルを調査します。CHECK TABLE でテーブルの問題を報告できます。

修復を試みる前に、最新のデータベースバックアップを作成または確認してください。REPAIR TABLE は主にサポート対象のMyISAMテーブルに関係するもので、万能な修復方法ではありません。確認で破損が報告されていない場合は、修復コマンドを繰り返し実行しないでください。さらなる診断のため、ホスト、設定、権限、サーバーログの確認に戻ります。

7. 修正後にサイト全体を確認する

複数の公開ページと /wp-admin/ を読み込みます。両方が動作する場合でも、古い出力が残っているときに限り、関連するキャッシュ層を消去します。いずれかの領域が引き続き失敗する場合は、元の接続問題が変わらず続いていると決めつけず、現在表示されている正確なメッセージを記録し、サーバーログまたはホスティングログを確認してください。

予防と修正確認

  • 現在のデータベース名、ユーザー、ホスト、パスワードの情報を、保護されたパスワードマネージャーまたは同等の安全な記録に保存します。
  • 移行またはホスティング変更のたびに、移行を完了する前に公開サイトと /wp-admin/ の両方をテストします。
  • 定期的なデータベースバックアップを維持し、復元可能であることを定期的に確認します。
  • 各WordPressデータベースに割り当てられているデータベースユーザーを記録し、復元やユーザーの置き換えによってアクセス権が知らないうちに失われないようにします。
  • 利用可能な場合は、ホスティングのリソースアラートとデータベースサービスのイベントを確認します。特に、予期しない再起動や接続障害が繰り返される場合に重要です。
  • wp-config.php へのアクセスを制限し、サポート依頼でその内容や認証情報を共有しないでください。

外部の助けが必要なタイミング

データベースサービスが利用できない、繰り返し停止する、ホスティングのリソース制限を超えている、または自分で確認できないインフラ上で稼働している場合は、ホスティングプロバイダーに問い合わせてください。ホスティングパネルと一致しているにもかかわらず直接接続の認証情報が失敗する場合、必要な DB_HOST の値がプロバイダー固有である場合、またはテーブルの確認で破損が報告され、検証済みのバックアップがない場合もエスカレーションしてください。

おおよその発生開始時刻、/wp-admin/ も失敗するかどうか、データベースサービスのステータス、直接接続テストが成功したかどうかを伝えてください。関連するエラーの詳細は共有して構いませんが、パスワードや編集前の wp-config.php ファイルを決して送信しないでください。

Webサイトを確認

よくある質問

WordPressの「Error Establishing a Database Connection」とは何ですか?

WordPressが設定されたMySQLまたはMariaDBデータベースに接続できなかったことを意味します。まず、データベースサーバーの可用性、wp-config.php の4つの接続設定、設定されたユーザーのデータベースへのアクセスを確認してください。

wp-config.php のどの設定を確認すべきですか?

DB_NAME、DB_USER、DB_PASSWORD、DB_HOST を確認します。特に移行、パスワード変更、復元、ホスティングの移転後は、それぞれの値をホスティングプロバイダーから提供された現在のデータベース情報と照合してください。

問題がWordPress側かデータベースサーバー側かを判断するにはどうすればよいですか?

同じデータベース名、ユーザー名、パスワード、ホストを使い、phpMyAdminまたはMySQLコマンドラインで接続を試します。直接接続に失敗する場合、根本的な問題はWordPressのページ表示ではなく、サーバー、認証情報、ホスト、ネットワークアクセス、権限にある可能性が高いです。

データベースユーザーが存在していても、このエラーの原因になることはありますか?

はい。ユーザーが存在していても、WordPressデータベースに割り当てられていない、または必要な権限を持っていない場合があります。ホスティングパネルでユーザーとデータベースの割り当てを確認するか、権限のある管理者に SHOW GRANTS で権限を確認してもらってください。

WordPressのデータベーステーブルはすぐに修復すべきですか?

いいえ。まず、データベースサーバーが稼働していること、認証情報が機能すること、ユーザーにアクセス権があることを確認してください。これらの確認に成功したら、最新のバックアップを作成または確認し、CHECK TABLE を使用します。REPAIR TABLE は、報告されたテーブルの種類と修復状況が適している場合にのみ使用してください。

WordPressの移行後にこのエラーが表示されたのはなぜですか?

移行によって、wp-config.php が以前のデータベース名、ユーザー、パスワード、またはホストを参照したままになっている可能性があります。また、復元されたデータベースユーザーに新しいデータベースへのアクセス権がない場合もあります。移行後はすべての接続値を比較し、ユーザーの割り当てを確認してください。

関連ドキュメント

信頼できる手順については、wp-config.php のデータベース設定とデータベース修復に関するWordPress公式ドキュメント、接続テストと権限に関するMySQLまたはMariaDBのドキュメント、データベースホストの値、サービスステータス、ユーザーとデータベースの権限に関するホスティングプロバイダーのドキュメントを参照してください。使用しているデータベースエンジンとホスティング環境に合ったドキュメントを利用してください。