WordPress個別サポート

データベース接続確立エラー(Error establishing a database connection)はWordPressトラブルの中でもベスト3に入るくらい定番のエラーです。ここでは、データベース接続確立エラーの対処法から意外な原因、エラーが発生する仕組みを説明します。

突然発生することもあるデータベース接続確立エラー

突然発生することもあるデータベース接続確立エラー

スポンサーリンク

データベース接続確立エラーの対処法

データベース接続確立エラーが発生して急いでいる方もいるでしょうから先に対処法を書いておきます。それは、サーバーと設定ファイル(wp-config.php)のデータベース設定を一致させることです。

設定の4項目(データベース名・ユーザー名・パスワード・データベースホスト名)を確認しましょう。

まず、設定ファイル(wp-config.php)のデータベース設定を確認します。このファイルはWordPressをインストールしたフォルダに存在します。FTPソフトまたはレンタルサーバーのFTPツールで開きましょう。

30行目あたりにある4項目がデータベースを使うための設定です。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'abcd1234');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'abcd1234');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'abcd1234');

/** MySQL のホスト名 */
define('DB_HOST', 'mysql9999.example.com');

「abcd1234」や「mysql9999.example.com」の文字がユーザーごとに異なるデータベース設定です。

「abcd1234」や「mysql9999.example.com」はサンプルです。実際は違う文字が入っています。

このデータベース名、ユーザー名、パスワード、ホスト名の4項目をサーバーの設定と一致させる必要があります。

サーバーのデータベース設定はレンタルサーバーの管理画面からチェックできるようになっているのが一般的です。主なレンタルサーバーの例を紹介します。

エックスサーバーの場合

エックスサーバーではサーバーパネルにログインして、「MySQL設定」メニューを開くと、データベース名とユーザー名を確認できます。

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

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

画面を下にスクロールすると、MySQLのホスト名を確認できます。

MySQLのホスト名

MySQLのホスト名

これらの内容がwp-config.phpの記述と一致しているか確認してください。

パスワードは確認できませんので、設定した内容を思い出してwp-config.phpの設定と照合しましょう。

パスワードを忘れてしまった場合は「MySQLユーザー一覧」から変更することができます。

MySQLユーザーのパスワード変更

MySQLユーザーのパスワード変更

ユーザーパスワードを変更すると、同じユーザーパスワードを使っているサイトに影響し、すべて「データベース接続確立エラー」になる可能性があるので十分に注意して変更してください。

さくらインターネットの場合

さくらインターネットではサーバコントロールパネルにログインして、「データベース設定」メニューを開くとデータベース名、ユーザー名、データベースサーバを確認できます。「データベースサーバ」とはwp-config.phpの「MySQLのホスト名」のことです。

さくらインターネットのデータベース設定

さくらインターネットのデータベース設定

これらの内容がwp-config.phpの記述と一致しているか確認してください。

パスワードは確認できないので、忘れてしまった場合は「接続パスワード変更」の「変更」ボタンから変更しましょう。ただし、同じユーザー(パスワード)を使っているサイトに影響するので安易な変更は厳禁です。

ロリポップの場合

ロリポップではユーザー専用ページにログインして「サーバーの管理・設定」‐「データベース」メニューを開くとデータベース名、ユーザー名、データベースホスト名を確認できます。

ロリポップのデータベース設定

ロリポップのデータベース設定

パスワードを確認するには「操作する」ボタンをクリックして「パスワード確認」を開きます。これらの内容がwp-config.phpの記述と一致しているか確認してください。

「パスワード再設定」からパスワードを変更することもできます。ただし、同じユーザー(パスワード)を使っているサイトに影響するので注意が必要です。

パスワード確認・再設定

パスワード確認・再設定

データベース接続確立エラーの対処法のまとめ

データベース接続確立エラーは基本的にはデータベース設定の4項目(データベース名・ユーザー名・パスワード・データベースホスト名)が間違っているせいで発生します。

レンタルサーバーの設定と設定ファイル(wp-config.php)の入力内容を確認して、これらの4項目を一致させましょう。

データベース接続確立エラーの原因

データベース設定を間違えるとデータベース接続確立エラーになるとはいえ、多くのレンタルサーバーではWordPressの簡単インストール機能のおかげで、わざわざwp-config.phpを編集しなくて済むようになっています。

それにも関わらずサーバーとwp-config.phpでデータベース設定がズレてしまう原因は、どこにあるのでしょうか。ここでは、wp-config.phpへの入力ミス以外で定番のデータベース接続確立エラーの原因を紹介します。

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

レンタルサーバーでデータベースのパスワードを変更した場合、合わせてwp-config.phpに記述されたパスワードを手動で変更する必要があります。自動で書き換えてはくれません。

それを忘れてしまうと、もれなくデータベース接続確立エラーになります。

また、同じユーザー(パスワード)を使っているサイトがすべてエラーになる可能性があるので要注意です。

サイトが膨大でwp-config.phpを直していくのが面倒な場合は、パスワードを元に戻すのが現実的かもしれません。

セキュリティを強固にする目的でデータベースパスワードの変更を思い付くのは悪いことではありませんが、パスワードを変更した後の作業をイメージすることが重要です。

サイトを別のサーバーに引っ越したとき

サイトを引っ越した場合、たとえば、さくらインターネットからエックスサーバーに移転した場合、wp-config.phpのデータベース設定の書き換えが必要です。それを忘れるとデータベース接続確立エラーになります。

ただし、All-in-One WP Migrationのようなプラグインを使って移転した場合は書き換える必要はありません。エラーは起きていないはずです。

サイトがハッキング被害にあった場合

少し怖い原因ですが、サイトがハッキングや改ざんの被害にあった場合、一時的にサーバーに異常な負荷がかかることがあります。その場合、レンタルサーバーは負荷を軽減するため、そのサイトが動作しないように強制的にサイトを停止する場合があります。

たとえば、wp-config.phpをwp-config.php.suspectedのような名前に変更します。これにより、WordPressは動作しなくなりサーバーへの負荷も軽減されますが、言うまでもなくデータベース接続確立エラーになります。

この場合、データベース設定の4項目は間違っていませんが、そもそもwp-config.phpが存在しないのでエラーになります。とはいえ、安易にファイル名をwp-config.php.suspectedからwp-config.phpに戻すのは危険です。

被害を受けたサイト自体をきれいに修復しないと、データベース接続確立エラーが解消しても再度レンタルサーバーからサイト停止の措置をとられるでしょう。

このケースでは一般的にWordPressのシステムを入れ替えることになりますが、話が長くなるのでここでは説明を省略します。お困りのときはWordPress個別サポートで対応いたしますのでご相談ください。

このような原因でデータベース接続確立エラーが発生した場合、「何もしていないのにある日突然エラーが発生!」となりますが、このような事情です。

XAMPPでMySQLを起動していない

XAMPPのようなツールを使ってローカル環境でWordPressを動作させる場合、MySQLを起動していないとWordPressを実行できません。これもデータベース接続確立エラーになります。対処法は簡単で、XAMPPコントロールパネルで「Start」ボタンをクリックしてMySQLサーバーを起動させましょう。

MySQLが起動していない

MySQLが起動していない

データベーステーブルが壊れている

データベース最適化プラグインで処理に失敗した場合などにデータベース(テーブル)が破損してしまうこともあります。その場合もデータベース接続確立エラーになる可能性があります。

対処としてphpMyAdminなどを使って壊れているテーブルにcheck tableコマンドでチェックをかけ、「marked as crashed and should be repaired」(壊れているので修復が必要)のようなメッセージが表示された場合はrepair tableコマンドを使ったテーブル修復を検討してください。

※安易なコピーペーストでデータベースコマンドを実行すると別の問題を起こす場合があるので、ここでは具体的なコマンドは紹介しません。よくわからなければWordPressメールサポートにご相談ください。

データベース接続確立エラーの仕組み

順番が逆ですが、上記の対処法でピンとこなかった方や、今後のために仕組みを理解したい方のために、データベース接続確立エラーの仕組みを紹介します。

まず、大前提としてWordPressはデータベースと連携して動作しています。「データベースって何?」がピンとこない方は、「管理画面からの入力内容を保存する箱」だと思ってください。

管理画面から入力した投稿や固定ページの内容は「データベース」という箱に保存されます。

管理画面からの入力内容はデータベースに保存される

管理画面からの入力内容はデータベースに保存される

データベースには誰でも自由にアクセスできるわけではありません。そのような状態だと自由にイタズラされてサイトがメチャクチャになってしまいます。そのため、不正なアクセスは遮断する必要があります。

データベースへの不正なアクセスは遮断

データベースへの不正なアクセスは遮断

不正なアクセスを遮断するには、データベースに鍵をかけるのが一般的です。具体的には、そのデータベースを使えるユーザーやパスワードを決めておいて照合する方法です。

ユーザーやパスワードでデータベースに鍵をかける

ユーザーやパスワードでデータベースに鍵をかける

これにより、データベース設定を知っている人だけがデータベースにアクセスできるようになります。

正しいデータベース情報を知っている人のみアクセス可能に

正しいデータベース情報を知っている人のみアクセス可能に

データベースを使うためアクセスすることを「データベースに接続する」といい、ユーザー名やパスワードが一致してデータベースが使用可能になった状態を「データベース接続が確立された」といいます。

データベース接続が確立された状態

データベース接続が確立された状態

データベースに接続した際にユーザー名やパスワードが間違っていて使用許可が得られないと、データベース接続が確立できない状態になります。つまり、WordPress的に言えばデータベース接続確立エラーとなります。

データベース接続確立エラーになる

データベース接続確立エラーになる

まとめ

このように、サーバーとwp-config.phpのデータベース設定が一致しないとデータベース接続確立エラーが発生しますが、前述のようにその事情はさまざまです。パスワード変更時やサイト移転時にデータベース設定を変更し忘れる単純ミスのこともありますがハッキング被害のように深刻な原因もあります。原因をしっかり見極めて対処するようにしましょう。

この記事をSNSで共有する
WordPressでお困りのときはご相談を
細かい質問からCSSやPHPのカスタマイズ、トラブル対応まで、この記事を書いた西沢直木が直接、WordPress個別サポートで対応します。
WordPress個別サポートの特徴
  • 最短で本日中に問題解決できます
  • 見積もり無料・料金は終了後の後払いです
  • 銀座教室・スカイプ・出張またはメールで対応します
トラブル解決でお急ぎのときは
お急ぎのときはWordPressメールサポートで対応します。ご活用ください。
こんなときはご相談ください(相談・見積もり無料)
  • ログインできなくなった
  • 画面が真っ白(500エラー)になった
  • 間違ってサイトを消してしまった
  • 引っ越し・SSL対応がうまくいかない
  • CSS・PHPのカスタマイズがうまくいかない
WordPress講座の問い合わせ先
WordPress講座申し込み
メールで問い合わせ

関連記事

スポンサーリンク