こんにちは、ryohei(@ityryohei)です!

本記事では、マルチサイトでデータベース接続確率エラーが発生した際に確認する項目をご紹介しています。

先日マルチサイトで構築されたサイトのサーバを移管した際にデータベース接続確立エラーが発生したため、私が解決に至った方法を共有できればと思います。

マルチサイトを移管したらデータベース接続確立エラーに…どうすれば解決するの?

上記でお悩みの方の参考になれば幸いです。

では、解説していきます。

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

データベース接続確立エラーとは、文字通りWordPressがデータベースと接続できないがために起こるエラーです。サーバ移管やドメインの変更といった作業を行う場合に発生しやすいエラーです。WordPressがデータを取得できない状態です。ブラウザでWebサイトにアクセスして下記のエラーメッセージが表示されたら確定です。

日本語

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

英語

Error establishing a database connection

あまり好ましくないエラーですが、言い換えればデータベースに接続できれば表示される状態にあるという解釈もできます。サイトの移管などはある程度経験があるエンジニアの方が担当すると思いますので、ファイルのアップロードやデータベースのインポートは問題ないはず。なのでエラーの原因はWordPressの設定やデータベースのレコードの値が違うといったものが考えられます。

データベース接続確立エラーが表示されたら、まずは下記がきちんと設定されているか確認しましょう。

  • wp-config.php
  • データベースのレコード

上記のどこを見ればいいのか、詳しく見ていきたいと思います。

wp-config.phpの設定

wp-config.phpは、ファイル名の通りWordPress本体の設定内容が記載されています。データベースの接続情報も同様です。wp-config.phpに記載されている情報は正しいのか確認しましょう。

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

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

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

/** MySQL のホスト名 */
define('DB_HOST', 'xxxxx.ap-northeast-1.rds.amazonaws.com');

/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8mb4' );

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );

通常のシングルサイトであれば上記の設定だけで大丈夫です。マルチサイトの場合はもう少し下にスクロールするとマルチサイト用の設定内容が記載されています。「DOMAIN_CURRENT_SITE」の定数に設定されているドメインが正しいのか確認しましょう。

define ('WP_ALLOW_MULTISITE', true);
define('WP_DEBUG', false);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'mydomain.jp'); //ここのドメインを確認
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

問題なければwp-config.phpの設定は完了です。修正した場合はファイルをサーバにアップロードしておきましょう。

WordPress側の設定ファイルに問題がないようであればデータベース側の設定でエラーになっているのかもしれません。レコードの値を確認してみましょう。

データベースの設定

下記はデータベースで確認すべきテーブルのリストです。接頭辞は「wp_」を想定しています。接頭辞はインストール時に設定した内容で異なりますのでご了承下さい。

  • wp_blogs
  • wp_options
  • wp_site
  • wp_sitemeta
  • wp_n_options

確認するテーブルとレコードを記載していますので、参考に修正してみてください!

wp_blogs

domain:新ドメイン
path:各サイトのパス

wp_options

移行先の環境に合わせて

option_name:siteurl
option_value:WordPressインストールURL

option_name:home
option_value:ホームURL

wp_site

domain:新ドメイン
path:サイトのパス

wp_sitemeta

meta_key:siteurl
meta_value:WordPressインストールURL

wp_n_options

サイトネットワークの数だけ指定

option_name:siteurl
option_value:サイトネットワークURL

option_name:home
option_value:サイトネットワークURL

最後に

WordPress

以上、WordPressでマルチサイト移管時にデータベース接続確立エラーが発生したときの対処法のご紹介でした!