WordPress の「Error Establishing a Database Connection」エラーを修正する方法

このような動画をもっとご覧になりたいですか?
私たちの YouTube チャンネルをご覧ください。

エラーメッセージ「Error establishing a database connection」は、WordPress の致命的なエラーです。サイトがデータベースに接続できないため、訪問者はコンテンツの代わりに、その一行だけが表示された空白のページを目にします。最も一般的な原因は wp-config.php ファイル内の誤ったデータベース認証情報で、多くの場合サイトの移行後に発生します。そのため、まずこれを確認してください。

手っ取り早い解決策: wp-config.php を開き、DB_NAMEDB_USERDB_PASSWORDDB_HOST がホスティングアカウントの MySQL 設定の値と一致しているか確認します。一致しているのにエラーが続く場合は、データベーステーブルが破損しているか、MySQL サーバーがダウンしている可能性が高いです。以下の手順では、各原因を可能性の高い順に一つずつ確認していきます。

エラーメッセージ「Error Establishing a Database Connection」の原因は何ですか?

エラーメッセージ「Error Establishing a Database Connection」は、WordPress 設定内の不正なデータベース認証情報、破損したデータベース、または応答しないデータベースサーバーによって引き起こされる場合があります。

画像:Error Establishing a Database Connection エラーメッセージ
This is what the error message “Error Establishing a Database Connection” looks like

表示されている症状を最も可能性の高い原因と照合し、そのまま修正方法にジャンプするには、この表を使用してください:

表示される症状 最も可能性の高い原因 修正する場所
フロントエンドと /wp-admin の両方で同じエラー wp-config.php の誤ったデータベース認証情報 WordPress データベースの認証情報を確認する
新しいホストへの移行直後にエラーが発生 誤ったデータベースホスト、または新サーバーの認証情報 データベースのホスト名情報を確認する
/wp-admin に「One or more database tables are unavailable」と表示される データベーステーブルの破損 WordPress データベーステーブルを修復する
トラフィックが増えるとサイトが遅くなり、その後エラーになる MySQL サーバーの過負荷またはオフライン データベースサーバーがオフラインかどうかを確認する
サイトアドレスの変更後にエラーが表示される データベース内の古い siteurl の値 WordPress サイトの URL を更新する

データベースとは何ですか?

問題を理解するために、私たちが扱っているものを簡潔に説明します:

データベースは、ソフトウェア間でデータを保存、整理、取得することを容易にするソフトウェアです。

WordPress はコンテンツ管理システムとして機能します。すべてのコンテンツと他のウェブサイトデータを保存するためにデータベースを使用します。ウェブサイトが訪問されるたびに、データベースへの接続が確立されます。

WordPress がデータベースに接続を確立するために必要なデータは何ですか?

WordPress は以下の情報を必要とします:

  • データベース名
  • データベースユーザー名
  • データベースパスワード
  • データベースサーバー

この情報は、「wp-config.php」という名前の WordPress 構成ファイルに保存されます。

これらの項目のいずれかが正しくない場合、WordPress はもはやデータベースサーバーに接続できなくなります。すると、エラーメッセージ「Error Establishing a Database Connection」が表示されます。

これは最も一般的な WordPress エラーの一つです。不正な認証情報以外にも、データベースサーバーが故障した場合やデータベースファイルが破損している場合にもこのエラーが発生する可能性があります。

このエラーにはさまざまな原因がある可能性があります。異なるシナリオを一つずつリストアップしました。すでに自分でこれらのアプローチの一つを試したことがある場合は、上記の目次から次のステップを選択してください。

最も可能性の高い理由から始めて、それからより一般的でない理由について説明します。

WordPress データベースの認証情報を確認する

WordPress でデータベース接続失敗の最も一般的な原因は、不正なデータベース認証情報です。

WordPress データベース接続が不正である理由の一つは、最近 WordPress サイトを新しいホストやサーバーに移動したことが原因である可能性があります。

WordPress データベースのログイン情報は wp-config.php ファイルに保存されます。この WordPress 構成ファイルには、データベース情報を含むすべての基本的な WordPress 設定が含まれています。

FileZilla のような FTP クライアントを使用してウェブサイトにログインし、wp-config.php ファイル内の以下の行を探します:

画像:データベース認証情報

データベース名、ユーザー名、パスワードが正しいことを確認する必要があります。

この情報は、WordPress ホスティングアカウントのダッシュボードで確認できます。ホスティングアカウントにログインし、データベースセクションの「MySQL Databases」をクリックします。

画像:データベースホスティングアカウント MySQL

ホスティングダッシュボード内のデータベース管理ページに移動します。ここでは、データベース名とユーザー名を確認できます。

画像:データベース情報

下には、データベースユーザーとユーザーパスワードを変更するためのリンクがあります。

画像:データベースユーザー

データベース名、ユーザー名、パスワードを照合した後、必要に応じて wp-config.php ファイル内のこの情報を変更できます。

ウェブサイトを再訪問して、データベース接続エラーが解決されたかどうかを確認します。

エラーがまだ表示される場合は、別の何かがエラーを引き起こしていることを意味します。記事を読み続けて、さらなるトラブルシューティング手順を確認してください。

データベースのホスト名情報を確認する

方法 1 に従い、正しい WordPress データベースログイン情報を使用していることを確認した場合は、適切なデータベースホスト情報を使用していることを確認する必要があります。

WordPress ホスティング会社の大多数は、「localhost」をデータベースホストとして使用しています。ただし、一部の WordPress ホスティング会社では、データベースをホストするために別のサーバーを使用しています。この場合、データベースホスト情報は localhost ではありません。

この場合、データベースホスト情報を取得するために、WordPress ホスティング会社に連絡する必要があります。

WordPress データベーステーブルを修復する

破損したテーブルと誤った認証情報を見分ける簡単な方法があります。公開サイトには一般的なエラーが表示されるのに、/wp-admin には別のメッセージ「One or more database tables are unavailable. The database may need to be repaired.」が表示される場合、テーブル自体が損傷しており、このセクションが必要になります。

データベースを修復するには、「wp-config.php」ファイルに以下の行を追加します:

define('WP_ALLOW_REPAIR', true);

このテキストを「That’s all, stop editing! Happy blogging」の行の直前に追加します。

WP_ALLOW_REPAIR 定数を使ったデータベース修復コードを追加します。

このページの設定を表示するには、http://www.example.com/wp-admin/maint/repair.php にアクセスします:

データベースの修復と最適化オプション

「repair database」ボタンをクリックし、プロセスが完了するのを待ちます。

どの訪問者でもこのデータベース修復ページにアクセスできます。データベースの修復と最適化が完了したら、「wp-config.php」ファイルからこのコードを削除する必要があります。

データベースサーバーがオフラインかどうかを確認する

すべての項目を確認しても WordPress がまだデータベースに接続できない場合、データベースサーバー (MySQL サーバー) がダウンしている可能性があります。

これは、サーバーで大量のトラフィックが発生したときに起こります。ホスティングサーバーがこの大きな負荷を処理できません。この問題は、特に共有ホスティングを使用しているときに発生します。
その結果、サイトは非常に遅くなり、一部のユーザーはエラーを取得することさえあるかもしれません。

ホスティングプロバイダに連絡し、MySQL サーバーが応答しているかどうかを確認してください。

あるいは、同じサーバーで他のウェブサイトが動作している場合、それらのウェブサイトをチェックして、SQL サーバーがダウンしていることを確認できます。

データベースアクセスの認証情報が正しいかどうか、データベースサーバーがオフラインでないかどうかを確認するには、テキストエディタで新しい空のテキストファイルを作成し、testconnection.php という名前を付け、その空のテキストファイルに以下のコードをコピーして貼り付けます:

<?php $link = mysqli_connect('localhost', 'username', 'password'); if (!$link) { die('Could not connect: ' . mysqli_error()); } echo 'Connected successfully'; mysqli_close($link); ?>

画像:データベースユーザーの権限を確認する
Verify if your database user has sufficient permission

値「username」と「password」を設定に合わせて調整します。
このファイルを FTP またはファイルマネージャープラグインを使用してウェブサイトにアップロードし、ウェブブラウザでアクセスします。

スクリプトが正常に接続できる場合、ユーザーに十分な権限があり、データベースサーバーがオンラインであることを意味します。次に、同じ認証情報を wp-config.php で使用すると、WordPress はデータベースに接続できます。

次のステップでは、機能する他の解決策をリストアップしますが、これらは前のものより頻度は少なくなります。

WordPress サイトの URL を更新する

ホスティングアカウントのダッシュボードから phpMyAdmin にアクセスし、WordPress データベースを選択します。

次に、上部の SQL メニューをクリックし、以下の MySQL クエリを入力します:

UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'

注:必ず自分の「Site URL」を入力し、サイトが異なる WordPress テーブルプレフィックスを使用している場合は、「wp_options」をサイトのテーブル名に変更してください。

ウェブサーバーを再起動する

専用サーバー、ローカルサーバー、または仮想プライベートサーバー (VPS) を使用している場合、サーバーを再起動してみることができます。

ウェブサーバーとデータベースサーバーを再起動すると、エラーの原因となっている可能性のある一時的な不具合が解決される場合があります。

エラーが解決しない場合

上記のいずれの手順でもサイトが復旧しない場合は、サポートに連絡する前に詳細情報を集めましょう:

  • wp-config.phpdefine('WP_DEBUG', true);define('WP_DEBUG_LOG', true); を追加してデバッグログを有効にし、サイトを再読み込みしてから、wp-content/debug.log で正確なデータベースエラーを確認します。完了したら両方の行を削除してください。
  • MySQL サービスが稼働しているか、そしてアカウントが接続数またはストレージの上限に達していないかを、ホスティングプロバイダに確認してもらいましょう。
  • 更新、移行、または復元の直後にエラーが表示された場合は、サイトとデータベースの最近のバックアップにロールバックします。これにより、接続を壊した変更が取り消され、再試行するための正常な出発点が得られます。

まとめ

「Error Establishing a Database Connection」は手強く見えるかもしれませんが、正しい手順を踏めば、多くの場合、簡単な修正です。潜在的な原因を理解し、上記で説明した解決策を適用することで、WordPress サイトをすばやく復元できます。定期的なメンテナンスと予防的な対策により、将来このエラーを防ぐのに役立ちます。

関連記事

Rene Hermenau

著者: Rene Hermenau

著者について: René Hermenau は WP STAGING の創設者です。WordPress のバックアップ、ステージング、移行、データベース処理、安全なデプロイメントワークフローに取り組んでいます。