久しぶりに本格的にテーマ変更しようと思って、本番の環境をローカルにコピーする。
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);
- DB_NAME
“DB_NAME” に問題があると上記画像のようなエラーが出るがでなかった。 - DB_USER
“DB_USER”に問題があると、”DB_NAME” と同様のメッセージが表示される。 - DB_PASSWORD
“DB_PASSWORD” に問題があると上記画像のようなエラーが出るがでなかった。 - DB_HOST
“DB_HOST”に問題があると、”DB_PASSWORD” と同様のメッセージが表示される。
上記メッセージが表示されないってことは、やっぱりDBの設定はあってたということに。。。
じゃどこでエラーが \(;゚∇゚)/
このエラーって他の原因で表示されるの?
とりあえず、エラーが表示される原因を探るため、処理を追いかける。
検索すると2箇所でてきた。両方とも日本語化ファイル内。
- ja.po
msgid “Error establishing a database connection”
msgstr “データベース接続確立エラー” - 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_blogs の domain をローカル環境のドメインに
ローカル環境だけでなく、ドメインが変わるサーバ移転をするときは他にもいろいろDBの設定変更が必要となる。
WordPressにアクセスする前にそれらを全部済ませとけ!ってことだ (^▽^)/
WordPressにアクセスする前にそれらを全部済ませとけ!ってことだ (^▽^)/
※WordPressの引っ越しは引っ越しツールを使うと安全!>>本番環境から開発環境を作る 参照!
「DB設定あってるのに “データベース接続確立エラー”」への1件のフィードバック