• WordPressのデータベース接続確立エラーは接続情報とデータベース側を分けて調べる

WordPressのデータベース接続確立エラーは接続情報とデータベース側を分けて調べる

公開日: 執筆:佐藤

WordPressでデータベース接続確立エラーが出たら、再インストールやデータベースの作り直しから始めてはいけません。wp-config.phpの接続情報を読み、データベースサーバーへ接続し、指定したデータベースを選ぶという経路に分けます。どの段階で止まったかを確かめれば、変更する範囲を絞れます。

このエラーだけでは、投稿や設定が消えたとは判断できません。作業前に、表示された文、発生時刻、直前のサーバー移転や設定変更を記録します。既存のバックアップを確認し、現在のwp-config.phpも別名で保存してから調べます。

WordPressがデータベースを使うまでには三つの段階がある

WordPress 3.4.2の標準処理は、wp-config.phpで定義された四つの値をwpdbへ渡します。その後の処理は、一度に行われるわけではありません。

段階 使う情報 確認すること
接続情報を読む DB_NAME、DB_USER、DB_PASSWORD、DB_HOST 値が契約中のサーバーで案内された内容と一致するか
データベースサーバーへ接続する DB_HOST、DB_USER、DB_PASSWORD ホストへ到達でき、利用者名とパスワードで接続できるか
データベースを選ぶ DB_NAME 接続後、その名前のデータベースを選べるか

WordPress 3.4.2の標準処理では、データベースサーバーへ接続できないと、Error establishing a database connectionを表示します。ソースコードは、利用者名とパスワードの誤り、ホスト名の誤り、データベースサーバーが動いていない状態を確認するよう案内しています。

サーバーへ接続できても、DB_NAMEで指定したデータベースを選べなければ、別のCan't select databaseという画面へ進みます。四つの設定値はまとめて確認しますが、同じ役割ではありません。表示された文を控えずに四つを一度に書き換えると、どの段階が直ったのか分からなくなります。

wp-config.phpの四つの値は契約情報と一項目ずつ照合する

標準のwp-config-sample.phpでは、DB_NAMEがデータベース名、DB_USERが利用者名、DB_PASSWORDがパスワード、DB_HOSTがホスト名です。DB_HOSTの見本はlocalhostですが、実際の値は利用するサーバーの案内を優先します。見本の値をそのまま使えるとは限りません。

照合には、サーバーの管理画面や契約時の案内を使います。古いメールや別サイトの設定から値を推測しません。移転後にエラーが出た場合は、移転元ではなく、現在WordPressを置いているサーバーのデータベース名、利用者名、ホスト名を確認します。

パスワードは、画面の画像、問い合わせ文、共同作業の記録へ貼り付けません。管理会社へ確認を依頼するときも、サイトのURL、発生時刻、表示されたエラー文、確認した設定項目を伝えます。パスワードそのものを送る必要があるかは、正規の窓口と安全な受け渡し方法を別に確認します。

値を直す場合は、サーバーの案内と異なることを確認できた項目だけを変更します。変更前後の値を記録し、同じURLを開きます。表示が変わらなくても、確認済みの正しい値を推測した値へ戻しません。引用符や行末の記号まで含め、PHPの記述を壊していないことも確認します。

接続情報が合っていてもデータベースサーバーへ到達できないことがある

DB_USER、DB_PASSWORD、DB_HOSTが正しくても、データベースサーバーが停止していれば接続できません。WordPress CodexのCommon WordPress Errorsも、設定情報の誤りと、サーバー停止や割り当て容量の問題を分けて案内しています。

同じサーバーの管理画面へ入れることと、データベースサーバーへ接続できることも別です。レンタルサーバーを利用しているなら、障害情報とメンテナンス情報を確認します。サーバーを管理していない利用者が、稼働状態を確かめるためにWordPressのファイルを書き換え続けても、データベースサーバーは復旧しません。

管理会社へ依頼するときは、wp-config.phpの四値を照合したこと、エラーが出るURLと時刻、直前の移転や設定変更の有無を伝えます。接続先を管理する側と、WordPressのファイルを管理する側が別なら、どちらがDB_HOSTと利用者権限を確認するかも決めます。

DB_NAMEの誤りはデータベースを選ぶ段階で現れる

データベースサーバーへの接続が成功すると、WordPressはDB_NAMEで指定したデータベースを選びます。選べない場合は、データベースが存在するか、利用者にそのデータベースを使う権限があるかを確認します。

名前が似たデータベースを見つけても、推測で接続先を切り替えません。別のWordPressやテスト環境へ接続すると、違う投稿や設定を表示するおそれがあります。サーバーの管理画面で、対象サイトへ割り当てたデータベースと利用者の組み合わせを確かめます。

データベースが見つからない場合も、同じ名前で空のデータベースを先に作りません。空の接続先へ変えれば、元の投稿や設定を探しにくくなります。既存のデータベース名、バックアップ、移転記録を確認し、見つからなければサーバー管理者へ調査を依頼します。

既存データを変えずに接続経路だけを直す

接続エラーの調査では、設定の照合とサーバーの状態確認までを先に行います。WordPressの再インストール、テーブルの削除、空のデータベースへのインポート、修復処理は、接続経路の確認とは別の作業です。原因が分からない段階では実行しません。

WordPressのバックアップ案内は、サイトのファイルとデータベースを分けて保存するよう説明しています。wp-config.phpを含むファイルの控えだけでは、投稿や設定を復元できません。データベースの保存だけでも、テーマやアップロードしたファイルは戻りません。

標準構成ではなく、wp-content/db.phpでデータベース処理を差し替えているサイトもあります。そのファイルがある場合は、削除して標準へ戻すのではなく、導入した担当者と役割を確認します。標準処理の説明だけで、独自の接続構成まで断定できないためです。

最初にすることは、現在のエラー文をそのまま記録することです。次に、wp-config.phpの四値を安全な場所でサーバーの契約情報と照合します。三値でサーバーへ接続する段階と、DB_NAMEでデータベースを選ぶ段階を分ければ、既存データへ手を加えずに調査先を決められます。

戻る