DB設定あってるのに “データベース接続確立エラー”


久しぶりに本格的にテーマ変更しようと思って、本番の環境をローカルにコピーする。
DB(データベース)はdumpしてローカルに丸コピー完了!
“wp-config.php” のDBの設定もローカル環境へ変更完了!
ローカルのWordPressにアクセスすると次のエラーメッセージが。。。∑(; ̄□ ̄A アセアセ

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

DBの設定はあってるはずなのにと再度確認する。

DB設定のチェック

“wp-config.php” のDBの設定を確認する。

  • define(‘DB_NAME’, ‘XXXXXXX’);
  • define(‘DB_USER’, ‘XXXXXXX’);
  • define(‘DB_PASSWORD’, ‘XXXXXXX’);
  • define(‘DB_HOST’, XXXXXXX’);

さてどれが間違っているんだろ。DBに関するエラー情報を詳しく表示させたいので次の設定も行う。

define(‘WP_DEBUG’, true);

  1.  DB_NAME
    wp_012
    “DB_NAME” に問題があると上記画像のようなエラーが出るがでなかった。
  2.  DB_USER
    “DB_USER”に問題があると、”DB_NAME” と同様のメッセージが表示される。
  3.  DB_PASSWORD
    wp_013
    “DB_PASSWORD” に問題があると上記画像のようなエラーが出るがでなかった。
  4.  DB_HOST
    “DB_HOST”に問題があると、”DB_PASSWORD” と同様のメッセージが表示される。

上記メッセージが表示されないってことは、やっぱりDBの設定はあってたということに。。。
じゃどこでエラーが \(;゚∇゚)/

このエラーって他の原因で表示されるの?

とりあえず、エラーが表示される原因を探るため、処理を追いかける。
wp_014
検索すると2箇所でてきた。両方とも日本語化ファイル内。

  1. ja.po
    msgid “Error establishing a database connection”
    msgstr “データベース接続確立エラー”
  2. ms-ja.po
    msgid “Error establishing database connection”
    msgstr “データベース接続確立エラー”

さらに調査していくと、今回は ms-load.php の次の箇所で表示しているらしい。

function ms_not_installed() {
	global $wpdb, $domain, $path;

	wp_load_translations_early();
	$title = __( 'Error establishing a database connection' );
	$msg  = '

さて、この ms_not_installed関数 はどこで呼ばれてるかな。
ms-settings.php らしい。判定処理もある。やっと原因突き止めた!

if ( ! $current_blog || ! $current_site )
    ms_not_installed();

ms-settings.php の処理をみていけばこの判定の意味がわかるが、解決方法だけ記載することにする。

解決方法

ms-settings.php ってマルチサイトのときに処理される。
なのでマルチサイトの設定で変更しておく箇所がある。
wp_015

wp_blogs の domain をローカル環境のドメインに

ローカル環境だけでなく、ドメインが変わるサーバ移転をするときは他にもいろいろDBの設定変更が必要となる。
WordPressにアクセスする前にそれらを全部済ませとけ!ってことだ (^▽^)/

※WordPressの引っ越しは引っ越しツールを使うと安全!>>本番環境から開発環境を作る 参照!

「DB設定あってるのに “データベース接続確立エラー”」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です