データベース接続の確立エラー」(Error Establishing a Database Connection)は、WordPressで発生する最もよくある恐ろしいエラーの一つです。間違いなく、「死の白い画面」に近いです。 本エラーが発生すると、ウェブサイトがデータベースとのコミュニケーションまたはデータベースへのアクセスができない為、表示されなくなります。販売、トラフィック、分析データなどに直接影響を与えるため真剣に考え、ただちに処理する必要のある異常です。

しかし、心配する必要はありません。今日、本エラーの原因となるよくあるシナリオと、ウェブサイトをすぐに復旧する処理方法を分かりやすいくご紹介していきます。

データベース接続の確立エラーとは?

投稿のデータ、固定ページのデータ、メタ情報、プラグインの設定、ログイン情報など、WordPressウェブサイトのすべての情報はMySQLデータベースに保存されています。データベースに保存されていない唯一のデータは、画像などのメディアコンテンツと、index.php、wp-login.phpなどのテーマ・プラグイン・コアのファイルです。訪問者がウェブサイトにアクセスすると、PHPは該当のページ上のコードを実行してデータベースの情報をクエリし、訪問者のブラウザでその情報を表示します。

上記のプロセスが正常に機能しない場合は、以下に示すように、データベース接続の確立エラーのメッセージが表示されます。接続が正しく機能していないため、ページをレンダリングするためのデータを取得できなく、ページ全体が空白になります。これでウェブサイトのフロントエンドが表示されなくなるだけでなく、WordPressダッシュボードへのアクセスも不可能になります。

ただし、訪問者にはフロントエンドですぐ本エラーが表示されない場合もに見ることもあります。これは、ウェブサイトが有効期限が切れるまでキャッシュから読み込まれるためです。たとえば、Kinstaでは、すべてのWordPressウェブサイトのデフォルトのキャッシュ時間は1時間です。したがって、ウェブサイトがまだキャッシュから読み込まれている場合、訪問者には正常に機能するかもしれません。

Chromeの「データベース接続確立エラー」

Chromeの「データベース接続確立エラー」

Kinstaでは、サポートチームがキャッシュ期間を必要に応じて1週間まで延長することができます。キャッシュの有効期限が切れた後に新しいファイルを頻繁に確認せずに済むため、頻繁に変更しないウェブサイトならこれでウェブサイトのパフォーマンスを向上させることができます。また、上記のような場合、ほとんどの場合、(ウェブサイトにスクリプトを壊するキャッシュやその他の要素がない限り)ウェブサイトのフロントエンドより長く表示されるようになります。

本エラーが発生中に訪問者がウェブサイトにアクセスしようとすると、ウェブサイトのログに「500」のHTTPステータスコードが生成されます。「内部サーバーエラー」が発生する場合も、同じステータスコードが表示されます。 サーバ内部にエラーが発生したせいで、リクエストしたリソースが配達されている意味です。ウェブサイトが正常に機能しているとき、「200」のHTTPステータスコードが生成されます。

データベース接続確立500エラー

データベース接続確立500エラー

Kinstaのお客様には、MyKinsta分析ツールの500エラー内訳レポートを見て、再発であるかを確認いただけます。

500エラーの内訳

500エラーの内訳

本エラーのよくある原因について

原因として考えられるのは以下の項目です。考えられる各原因の解説と処理方法をご紹介していきますので、ご安心ください。5分以内に解決できるはずです。

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

エラーを処理する前に、必ずバックアップを取りましょう。本記事の推奨事項の多くでは、データベースの情報を編集します。事態を悪くしないように注意しましょう。 情報技術に精通した方でも、WordPressウェブサイトで発生した異常を処理する前に必ずバックアップするべきです。

VaultPressやWP Time Capsuleなどの人気のあるWordPressバックアッププラグインを使用して、ファイルとデータベースの両方をバックアップできます。

You can never have too many backups; no matter how tech-savvy you think you are. 😉Click to Tweet

Kinstaのお客様には、当社のワンクリックバックアップ機能をご利用いただけます。MyKinstaにアクセスし、該当のWordPressウェブサイトをクリックし、「バックアップ」をクリックし、「今すぐバックアップ」をクリックするだけです。

WordPressウェブサイトのバックアップを作成する

WordPressウェブサイトのバックアップを作成する

バックアップは、本番環境にもステージング環境にも復元できます。または、phpMyAdminを使用してMySQLデータベースを手動でバックアップすることもできます。バックアップが完了後、データベース接続の異常を処理できます。

1. データベースのログイン認証情報を確認する

まず最初に、データベースのログイン認証情報が正しいかを確認します。データベース接続の確立エラーが発生する最もよくある原因は認証情報が正しくないことです。特にホスティング会社を切り替えた直後はそうです。WordPressウェブサイトの接続の詳細詳細は、ウェブサイトのルートにあるwp-config.phpファイルに保存されています。

接続が正常に行われるためには、4項目の報が正しくなければなりません。

データベース名

// ** MySQL settings ** //
/** The name of the database for WordPress */
define('DB_NAME', 'xxxxxx');

MySQLデータベースのユーザー名

/** MySQL database username */
define('DB_USER', 'xxxxxx');

MySQLデータベースのパスワード

/** MySQL database password */
define('DB_PASSWORD', 'xxxxxxxxx');

MySQLホスト名(サーバー)

/** MySQL hostname */
define('DB_HOST', 'localhost');

wp-config.phpファイルにアクセスするにはSFTPを介してウェブサイトに接続し、ウェブサイトのルートをアクセスします。cPanelをご利用の方は、「ファイルマネージャ」をクリックしてウェブサイトのルートにアクセスし、右クリックをしてファイルを編集することができます。

cPanelのファイルマネージャ

cPanelのファイルマネージャ

以下は、開いたままのファイルの外観の例です。

wp-config.phpの認証情報

wp-config.phpの認証情報

そこで、サーバー上の認証情報が正しいかを確認します。cPanelをご利用の方もKinstaのお客様もそれぞれ該当の手順に従ってください。

cPanelでデータベース認証情報を確認する

最初に確認することはデータベース名です。これを行うには、cPanelの「データベース」セクションにあるphpMyAdminにログインします。

cpanelのphpmyadmin

cPanelのphpMyAdmin

左下にはデータベース名が表示されます。ホスティング会社によって使用されるものであるため、「information_schema」データベースは無視します。 データベース名をwp-config.phpファイルのDB_NAMEの値と比較します。同じ名前の場合は問題ありません。異なる場合は、wp-config.phpファイルを更新する必要があります。

cPanelのデータベース名

cPanelのデータベース名

本当に該当のデータベースであることを確認するには、該当のWordPressウェブサイトのURLが含まれているかを確認します。これを行うには、データベースをクリックし、wp_optionsテーブルをクリックします。(セキュリティ上の理由から、wpxx_optionsなど、名前が少し異なる場合があります。)テーブルの上部にウェブサイトのURLと名前の値が表示されます。該当のウェブサイトのURLと名前と一致すれば、正しいファイルを開いたと安心できます。

phpMyAdminでウェブサイトのURLを確認する

phpMyAdminでウェブサイトのURLを確認する

データベース名が正しくても、データベース接続の確立エラーが発生している場合は、ユーザー名とパスワードも確認してください。これを行うには、WordPressウェブサイトのルートディレクトリに新しいPHPファイルを作成し、次のコードを入力します。checkdb.phpなど、好きな名前を付けることができます。wp-config.phpファイルにあるものでdb_userとdb_passwordの値を変更するだけです。

<?php
$test = mysqli_connect('localhost', 'db_user', 'db_password');
if (!$test) {
die('MySQL Error: ' . mysqli_error());
}
echo 'Database connection is working properly!';
mysqli_close($testConnection);

次にWordPressウェブサイトの次にファイルにアクセスします:https://yourdomain.com/checkdb.php.「MySQL Error: Access denied」(MySQLエラー:アクセスが拒否されました)というメッセージが表示された場合は、ユーザー名またはパスワードが間違っています。資格情報をリセットするには次の手順に進めてください。

MySQLへのアクセスが拒否されました

MySQLへのアクセスが拒否されました

「Database connection is working properly」(データベース接続は正しく機能しています)というメッセージの方が好ましいです。ただし、接続異常が発生してからこそ本記事をお読みになっているのでしょう。テストが終了したら、必ずこのファイルを削除してください。

データベース接続は正しく機能しています

データベース接続は正しく機能しています

次にユーザー名とパスワードをリセットします。cPanelをご利用の方は、「データベース」にある「MySQLデータベース」をクリックします。

cPanelのMySQLデータベース

cPanelのMySQLデータベース

スクロールダウンして新しいMySQLユーザーを作成します。簡単に推測できないように、ユニックなユーザー名とパスワードを選択しましょう。彼らが提供するパスワード生成ツールはとても便利です。次に、「ユーザーの作成」をクリックします。あるいは、既存のデータベースユーザーのパスワードをこの画面で変更することもできます。

新しいMySQLユーザーを作成する

新しいMySQLユーザーを作成する

次にスクロールダウンして、新しいユーザーをデータベースに追加します。次の画面はデータベースユーザーの権限を設定する画面で、「All Privileges」(全ての権限を与える)チェックボックスをチェックします。

cPanelでデータベースにユーザーを追加する

cPanelでデータベースにユーザーを追加する

次にwp-config.phpファイルを新しい認証情報で更新します。DB_USERとDB_PASSWORDの値を更新します。上記のテストファイルさえ再実行できます。これで認証情報の異常は解決するはずです。そうでない場合、ホスト名(DB_HOST)が間違っていることも考えられます。異なる値を使用しているホスティング会社もありますので、よくある DBホストの値についてはこちらのリストをご参照ください。通常は単にlocalhostになります。もちろん、確信がない場合は、ホスティング会社に連絡したり、ホスティング会社のドキュメントを確認したりもできます。localhostの代わりに127.0.0.1を使用する会社もあります。

上記の手順が完了してもデータベース接続の確立エラーが発生する場合は、次のトラブルシューティング手順に進みます。

Kinstaでデータベース認証情報を確認する

Kinstaのお客様にとっては、認証情報のwp-config.phpファイルとサーバーとの比較ははるかに簡単です!該当のウェブサイトの情報セクションをクリックするだけで、次の画面にデータベース名、データベースユーザー名、そしてデータベースパスワードが表示されます。デフォルトでは、KinstaはDB_HOSTにlocalhostを使用しています。

Kinstaのデータベースログイン認証情報

Kinstaのデータベースログイン認証情報

次にwp-config.phpファイルを新しい認証情報で更新します。DB_USERとDB_PASSWORDの値を更新します。これで認証情報の異常は解決するはずです。認証情報を再設定するには、当社のサポートチームまでご連絡ください。上記の手順が完了してもデータベース接続の確立エラーが発生する場合は、次のトラブルシューティング手順に進みます。

2. 破損したデータベースの修復

場合によっては、データベースが破損している可能性があります。新しいプラグインやテーマにより何百ものテーブルが追加したり削除したりするため、あまり頻繁にではありませんがデータベースが破損することがあります。 WordPressサウェブイトのダッシュボードにログインしようとしたときに次のエラーが表示されると、データベースが間違いなく破損しています。「1つ以上のデータベースが利用できません。修復する必要があるかも知れません。」フロントエンドでデータベース接続の確立エラーが表示されながら、バックエンドでのみ上記のメッセージが表示される可能性もありますので、ご注意ください。

WordPressにはデータベース修復モードを持っています。wp-config.phpファイルの最後に以下を追加するだけです:

define('WP_ALLOW_REPAIR', true);
WordPressの修復モード

WordPressの修復モード

その後、WordPressウェブサイトのhttps://yourdomain.com/wp-admin/maint/repair.phpにアクセスします。 次に、「データベースの修復」と「データベースの修復と最適化」のどちらかを選択できます。今回はウェブサイトの機能停止のトラブルシューティングを行っている為、速い方の「データベースの修復」をお勧めします。

WordPressデータベースの修復

WordPressデータベースの修復

上記の「データベースの修復」を実行した後は、他人が修復を実行できないようにwp-config.phpファイルに追加したコードを削除します。cPanelをご利用の方は、MySQLデータベース画面内でも修復を実行することができます。

cPanelでのデータベースの修復

cPanelでのデータベースの修復

または、phpMyAdmin内でも修復を実行することができます。phpMyAdminにログインしてデータベースをクリックし、すべてのテーブルを選択するだけです。次にドロップダウンメニューの「テーブルの修復」をクリックします。これは基本的にREPAIR TABLEコマンドを実行するだけです。

phpMyAdminでのテーブルの修復

phpMyAdminでのテーブルの修復

最後に、次のコマンドでWP-CLIを使用して修復を実行することもできます。

wp db repair

使い方の詳細についてはWordPress開発者リソースをご参照ください。

データベースを最適化したい方は是非当社のWordPressのリビジョンを最適化する方法についてチュートリアル及びMyISAMテーブルをInnoDBに変換する方法についてのチュートリアもご参照ください。これでも異常が消えない場合は、次のトラブルシューティング手順に進みます。

WordPressの「MySQL Server Has Gone Away」エラーの処理方法も是非ご参加ください。

3. 破損したファイルの修復

データベース接続の確立エラーの次に考えられる原因は、ファイルが破損していることです。ファイルが破損した理由はFTPを介してのファイル転送中の異常だろうが、ウェブサイトへアクセスしてしまったハッカーだろうが、ご利用のホスティング会社側の問題だろうが、すぐに処理できます。ただし、これを行う前に必ずウェブサイトのバックアップを作成しましょう。

簡単に言うとウェブサイトのWordPressのコアバージョンを置き換えます。プラグイン、テーマ、メディアではなくWordPressのインストールそのものを触ります。これを行うには、WordPress.orgからWordPressの新しいコピーをダウンロードする必要があります。

WordPressをダウンロードする

WordPressをダウンロードする

ファイルをコンピュータに解凍します。その中のwp-config-sample.phpファイルとwp-contentフォルダを削除します。

wp-contentフォルダを削除する

wp-contentフォルダを削除する

次に、残りのファイルをSFTPを介してウェブサイトにアップロードし、既存のファイルを上書きします。これにより、問題のあるファイルがすべて置き換えられ、クリーンで破損していない新しいファイルのみが残ります。完了後にはブラウザのキャッシュをクリアすることもお勧めします。次にWordPressウェブサイトを開いて、エラーがまだ表示されているかを確認します。

4. データベースサーバの異常

上記の手順に従っても異常が処理されない場合は、データベースサーバーの異常が発生している可能性があるため、ホスティング会社に確認することを強くお勧めします。たとえば、データベースへの同時接続の数が多すぎると、本エラーが発生する可能性があります。理由は、一度に許可される接続数の制限のあるホスティング会社が多いことです。キャッシングプラグインを利用すると、ウェブサイトのデータベースとのやり取りの数を最小限に抑えることができます。Kinstaのお客様なら、高速のサーバーレベルのキャッシュが用意されている為、キャッシュプラグインは必要ありません。

他人があなたのウェブサイトに影響を及ぼしている可能性がある為、この問題は共有ホスティングなら非常に発生しやすいです。共有ホスティング会社がサーバー上のウェブサイトのすべてを対象に同じリソースを利用しています。これこそは、パフォーマンスの高い、トラフィックの急増を処理できるようにWordPressウェブサイト専用に微調整された環境の持つマネージドWordPressホスティング会社を利用することを常に推奨するもう1つの理由です。

知識豊富なKinstaサポートチームへの問い合わせは、ダッシュボードの右下のボタンをクリックするだけでできます。24時間365日体制で対応しています。また、英語とスペイン語の両方でお客様を支援いたします。

Kinstaのサポートチームへの問い合わせ

Kinstaのサポートチームへの問い合わせ

5. 最新のバックアップを復元する

最後になりますが、必要ならばバックアップに頼ることさえできます。前回のバックアップを作成してからの時間のデータが失われることの心配がない場合には、バックアップを復元した方が一番速い処理方法であることもあります。独自のバックアップ復元プロセスのあるホスティング会社が多いです。データベースとファイルの両方を復元する必要がある場合がありますので、ご注意ください。

Kinstaのお客様には、ウェブサイトのバックアップセクション内でバックアップを簡単に復元いただけます。ご希望の時間を選択し、「復元先:」をクリックするだけです。そこで、ステージングまたは本番サイトのどちらに復元するかを選択できます。

WordPressのバックアップを復元する

WordPressのバックアップを復元する

次に復元を確定する画面が表示されます。そこでウェブサイト名を入力して「OK」をクリックするだけです。復元時のバックアップも作成されるため、必要に応じて復元を元に戻すことができます。

WordPressの復元を確定する

WordPressの復元を確定する

まとめ

ご覧のとおり、WordPressの「データベース接続の確立エラー」の処理方法はいくつかあります。最もよくある原因は、wp-config.phpファイルの認証情報が無効であることです。したがって、まず最初に認証情報が正しいかを確認しましょう。ダウンタイムをどうしても避けたいですね。上記の手順のいずれかがお役に立てれば嬉しく思います。必要に応じて、バックアップからウェブサイトを復元することも可能です。

データベース接続の確立エラーを経験したことがありますか?どの処理方法を使いましたか?コメントでも書いて、ご意見をお寄せください。


この記事が面白いと思った方は、KinstaのWordPressホスティングプラットフォームも大好きでしょう。ウェブサイトをスピードアップし、当社のベテランのWordPressチームからの24時間365日のサポートを是非ご利用ください。Google Cloudを使用したインフラストラクチャは、自動スケーリング、パフォーマンス、およびセキュリティに重点を置いています。Kinstaの魅力をご案内させてください。当社のプランをご確認ください。