wp.geek|世界のWordPress最新情報を届けるメディア WordPressのプロによる
情報発信メディア

2022.01.26セキュリティ

WordPressのデータベース接続確立エラーの原因とすぐできる解決法

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社プレート 取締役

1985年北海道生まれ。200社以上のWordPressサイトの制作を担当し、「wp.support」では一部上場企業を含め、様々なサイトのWordPress保守・セキュリティをサポートしている。

この著者の他の記事を見る >>

WordPressサイトにアクセスしたら「データベース接続確立エラー」というエラーが表示され、サイトが表示されなくなった!
弊社でもよく相談を受けるケースですが、原因として考えられるのは以下の項目です。

  • 「wp-config.php」の入力ミス
  • サーバー側の問題
  • データベース側の問題
  • サイトがハッキングされている

多くの場合、原因として考えられるのが「wp-config.php」の設定ミスです。しかし、場合によっては、サーバー側でトラブルが起こっていたり、悪意のあるハッキングを受けている可能性も考えられます。

今回は「データベース接続確立エラー」が発生する原因の解説とWordPress初心者の方でもすぐに出来る対処方法をわかりやすくご紹介していきます!

「一刻も早くサイトを復旧したい」という場合には、ハッキングにも対応可能なWordPress復旧サービスにご相談ください。サイト復旧を迅速にサポートさせていただくのでご自身で調べる手間がかかリません。

【迅速サポート】WordPress復旧サービスへのご相談はこちら

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

データベース接続確立エラーとは、簡単に言うと「サーバーとデータベースの連携が上手くいっていませんよ」というエラーになります。

データベース接続確立エラーが発生すると、Webブラウザ上に「Error establishing a database connection」と表示されます。

WordPressを使う際の大前提として知っておくとよいのが、WordPressはデータベースと連携することで初めて動作するということです。データベースとは何か一言で言うと「管理画面から入力された記事やサイトの情報・設定などの、動的な情報を保存する箱のようなもの」です。保存された情報は「データベース」という箱に保存されます。
データベースには誰でも自由にアクセスできるわけではありません。誰でも自由にアクセスできてしまうと不正なアクセスをされてサイトの情報を盗まれたり、改ざんされてしまい困るからです。ですから、アクセス権限を適切に設定する必要があります。

データベースにアクセスすることを「データベースに接続する」といい、ユーザー名やパスワードが一致してデータベースが使用可能になった状態を「データベース接続が確立された」といいます。
データベースに接続しようとする際、ユーザー名やパスワードが間違っているなど、アクセス権限が認証されない場合データベース接続が確立できない状態になります。これが「データベース接続確立エラー」というものです。

すごく雑な図で解説すると、WordPressサイトでは、下図のようにあるページへのアクセスがあった際、
サーバーからデータベースに「あのページの情報が欲しいよ」
という要求(=リクエスト)があり、
データベースが「はい、どうぞ」と応答してデータを返すことでサイトを表示しています。

WordPressでサイトが表示される仕組み

しかし、「データベース接続確立エラー」が起こると、
サーバーからデータベースに「あのページ情報が欲しいよ」と言っても、
何らかの原因でデータベースからの応答がなくてサイトを表示できていない状態です。
サーバーは仕方なく、データベースにアクセスできなかったという意味の「データベース接続確立エラー」画面を表示します。

データベース接続確立エラーが表示される仕組み

このエラーは、データベースにアクセスできなかったということを示すだけなので、これだけでは具体的にどこに問題があるのかはわかりません。

  • 要求されたデータが破損している
  • 問い合わせるデータベース名が間違っている
  • サーバー側で障害が発生している
  • データベースに異常が発生している

などの原因が考えられます。
ただ、基本的に、このエラーが出た時点では記事やサイトのデータが全部消えてしまっている、ということはまずありませんのでご安心ください。

ほとんどは、単純な設定ミスかサーバー側の問題であることが原因ですので、以下を確認してみましょう。

「wp-config.php」の入力ミス

サーバーやWordPressを引っ越した際には、「wp-config.php」の設定を変更する必要があります。設定ミスや記載漏れがあった場合には、「データベース接続確立エラー」または「Error Establishing Database Connection,」エラーメッセージが表示されます。

データベース接続確立エラーの画面

WordPressを別のサーバーに引っ越した場合、wp-config.phpのデータベース設定の書き換えが必要です。忘れるとデータベース接続確立エラーになります。

旧サーバーから取得したバックアップをエクスポートして新たなサーバーにインポートした場合は要注意です。この場合、wp-config.phpのデータベース接続情報は移転元の古いサーバーの情報になっているので接続情報を変更しないとデータベース接続確立エラーとなってしまいます。

データベース接続確立エラーが発生する最もよくある原因は認証情報が正しくないことです。特にホスティング会社を切り替えた直後に起きやすいのが認証情報の間違いです。WordPressウェブサイトの接続の詳細詳細は、ウェブサイトのルートにあるwp-config.phpファイルに保存されています。
wp-config.phpと実際のデータベースのログイン情報が一致しなくなったときにデータベース接続確立エラーが発生します。その場合、FTPクライアント等を介してWebサーバーに接続し、wp-config.phpファイルを編集します。

「wp-config.php」で入力が必要なデータベース情報の項目は下記になります。

  • データベース名
  • データベースのユーザー名
  • データベースのパスワード
  • データベースのホスト名

これらの情報のいずれかが間違っていると、「データベース接続確立エラー」になってしまいます。
「wp-config.php」の記述を探して、入力されている情報が間違っていないか確認しましょう。

入力する内容はホストしているサーバーの管理画面などで確認しましょう。

データベース名が正しくても、データベース接続の確立エラーが発生している場合は、ユーザー名とパスワードも確認しましょう。これを行うには、Webサイトのルートディレクトリに新しいPHPファイル(ここではcheck.phpとします。)を作成し、次のコードを入力します。

次にWebサイトのこちらのファイルにアクセスします:https://example.com/check.php
example.comはご自身のWebサイトのドメインに置き換えてください。

Webブラウザ上で「MySQL Error: Access denied」(MySQLエラー:アクセスが拒否されました)というエラーメッセージが表示された場合は、ユーザー名またはパスワードが間違っています。「Database connection is working properly」(データベース接続は正しく機能しています)というメッセージであれば、正常状態となっています。エラーメッセージが表示されるようであれば、資格情報をリセットしましょう。

データベース設定は間違っていないのにエラーが発生する場合、入力したコードの文法ミスの可能性があります。

例えば、半角で入力すべき文字が全角で入力されていることが考えられます。「’」など文字によっては半角か全角か判別しづらい文字もありますので注意しましょう。

サーバー側の問題

上記の記述に問題がない場合、サイトをホストしているレンタルサーバーなどで、下記のような問題が発生している可能性があります。

  • サーバーがダウンしている
  • データベースサイズが上限を超えた
  • データベース側のパスワードを変更した

サーバーがダウンしている

サーバー側のメンテナンスや技術的な問題、不意にアクセス数が急増した場合などが該当します。サーバーからメンテナンスや不具合のお知らせが来ていないかチェック、もしくはホスティング会社に直接連絡してみましょう。

データベースサイズが上限を超えた

記事や画像を大量に投稿している場合や元々のプランでデータベースの容量が少ない場合に発生します。サーバー会社に連絡して、該当するようであれば、データベースの軽量化とともに、プランの変更やサーバーの乗り換えなども検討しましょう。

データベース側のパスワードを変更した

レンタルサーバーの管理画面からデータベースのパスワードを変更することがあります。
その場合、サーバー側のパスワードのみが変更されるため、wp-config.phpに記述されたパスワードも変更する必要があります。これを忘れてしまうとデータベース接続確立エラーが発生します。

データベースが破損している場合

プログラムによる大量のDB操作をすることで、データベースが破損する可能性があります。

管理画面に「One or more database tables are unavailable. The database may need to be repaired.(データベースが利用できません。修復が必要な場合があります。)」と表示された場合、データベースが破損しているため、修復する必要があります。フロントエンド(ユーザーに見える部分)でデータベース接続の確立エラーが表示されながら、バックエンド(ユーザーには見えない部分(サーバー内のログなど))でのみ上記のメッセージが表示される可能性もありますので、ご注意ください。

wp-config.phpファイルに次の行を追加し、このページをリロードしましょう。

これは、データベースの修復を行うためのコードです。

define(‘WP_ALLOW_REPAIR’, true);
その後、https://example.com/wp-admin/maint/repair.phpにアクセスするとデータベースの修復ページに移動します。

「データベースの修復」と「データベースの修復と最適化」のどちらかのモードを選択するのですが、今回は復旧のみを考え、「データベースの復旧」を選択します。
ボタンをクリックするとデータベースの修復が行われるので、完了を待ちます。

セキュリティの脆弱性を避けるため、wp-config.phpファイルに追加したコードは削除しましょう。コードが残っていると他人がファイルにアクセスし、操作されてしまう可能性があります。

破損したデータベースを修復する

この場合、破損したデータベースを修復する必要があります。
それほど、難しい操作も必要ないので、解説していきます。

今回は、参考にXサーバーで「phpMyAdmin」というツールを使用する場合の修復手順をご紹介します。
他のサーバーの場合は、「サーバー名 + データベース修復」などで検索すると、それぞれの場合の手順が出てくるでしょう。

phpMyAdminを使う場合の復元手順は以下です。

  • 1.phpMyAdmin にアクセスする
  • 2.データベースをクリックする
  • 3.破損したデータベースを確認して修復する

phpMyAdminにアクセスする

まずは、Xサーバーのサーバーパネルにログインし、データベースの項目の「phpMyAdmin」をクリックします。

phpMyAdminをクリック

ユーザー名とパスワードが表示されます。ここで入力するのは、「wp-config.php」に記載されている「データベースのユーザー名」と「データベースのパスワード」です。Xサーバーのユーザー名とパスワードではないので注意しましょう。

データベースのユーザー名とパスワードを入力

破損したデータベースを確認して修復する

修復したいドメインのデータベースをクリックします。

修復したいデータベース名をクリック

下のような画面でデータベースの項目(テーブルと呼びます)一覧が表示されます。
ここで破損している項目がある場合は、種別などの項目に「使用中」と表示されます。
目立つのですぐにわかります。

破損テーブルは使用中と表示される

使用中となっているテーブルがあれば修復を行いますが、修復の前にまずデータベースのバックアップを取りましょう。
データベースのバックアップ方法はこちらのページを参照してください。

バックアップは必ず取るようにしましょう。万が一、修復がうまくいかなくても取り返しがききます。

修復が必要なテーブルに「チェックボックス」にチェックを入れ、
画面下のドロップダウンから「テーブルを修復する」を選択。
その後、右下の「実行」ボタンをクリックすれば完了です。

正常にテーブルが修復されていれば、サイトが表示されるはずです。

もし表示されなければこちらからご相談ください。

サイトがハッキングされている

上記のいずれでも問題が起きていない場合は、サイトがハッキングされている可能性があります。

ハッキングされると、一時的にサーバーに異常な負荷がかかることがあります。その場合、レンタルサーバーは負荷を軽減するため、そのサイトが動作しないように強制的にサイトを停止する場合があります。サイトが停止しているために起こっているエラーの可能性もあるのです。

「Sucuri SiteCheck」でサイトをスキャンしてみましょう。

何らかの問題が発見された場合は、ハッキングからの自力復旧する方法などを参照してみてください。

XAMPPやMAMPでMySQLを起動していない

XAMPPやMAMPを使ってローカル環境でWordPressを動作させる場合、MySQLを起動していないとWordPressを実行できません。これもデータベース接続確立エラーになります。
XAMPPは以下の略語です。

X:クロスプラットフォーム
A:Apache
M:MariaDB または、MySQL
P:PHP
P:Perl

MAMPは以下の略語です。
Macintosh
Apache
MySQL
PHP

対処法は、XAMPPやMAMPのコントロールパネルで「Start」ボタンをクリックしてMySQLサーバーを起動させましょう。

ファイルが破損している場合

データベース接続確立エラーの次に考えられる原因は、ファイルの破損です。ファイルが破損した理由はFTPを介してのファイル転送中の異常などいろいろ原因は考えられますが、すぐに処理できます。ただし、これを行う前に必ずWebサイトのバックアップを取っておきましょう。

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

ダウンロード後、圧縮ファイルを解凍します。その中のwp-config-sample.phpファイルとwp-contentフォルダを削除します。
次に、残りのファイルをSFTPを介してウェブサイトにアップロードし、既存のファイルを上書きします。これにより、問題のあるファイルが全て破損していない新しいファイルに置き換えることができます。完了後にはブラウザのキャッシュをクリアすることもお勧めします。次にブラウザでWebサイトを開いて、エラーが表示されているかを確認します。

データベース接続確立エラーの原因がわからない場合は?

データベース接続確立エラーの主な原因と対処方法について解説してきましたが、症状は改善したでしょうか?

上記の手順に従っても異常が処理されない場合は、データベースサーバーの異常が発生している可能性があるため、ホスティング会社に確認してみましょう。例えば、データベースへの同時接続の数が多すぎると、データベース接続確立エラーが発生する可能性があります。理由は、一度に許可される接続数を制限しているホスティング会社が多いためです。

もし、「解説を読んでもよくわからない!」「もうお手上げだ」「一刻も早くサイトを復旧したい」という場合には、ハッキングにも対応可能なWordPress復旧サービスにご相談ください。サイト復旧を迅速にサポートさせていただきます。

【セキュリティが不安な方はプロに丸投げ】月額4万円の保守サービスはこちら


WordPressサイトの保守・運用・管理のご相談はこちら

WordPressサイトの制作・リニューアル等のご相談はこちら

WordPressサイトのハッキングからの復旧・不具合の解消はこちら

注目記事バナー
2019.10.24