目次

この記事の目次です。

1. データベース接続確立エラーとは
1.1. ブラウザに表示されるWordPressのエラーメッセージ
1.2. Error establishing a database connectionと表示される場合もある
1.3. Error establishing a database connectionの意味
1.4. WordPressで使用するデータベースはMySQL

2. データベース接続確立エラーに関係するMySQLとは
2.1. データベースはデータの集まりのこと
2.2. MySQLはデータベースを管理するソフトウェア
2.3. データベース領域>テーブル>カラム>データという構成で管理する
2.4. データベース領域毎にMySQLアカウントが設定できる

3. WordPressレベルの原因判別と対処方法
3.1. wp-config.phpが定位置に置かれているか
3.2. wp-config.phpがPHPの文字コードの設定と同じか
3.3. wp-config.phpのデータベースの設定が正しいか
3.4. マルチサイトでドメイン設定に整合が起きていないか

4. MySQLレベルの原因判別と対処方法
4.1. MySQLのデータベース領域あるか
4.2. データベース領域で利用できるアカウントとなっているか
4.3. 認証方式が変わっていないか

5. OS/NWレベルの原因判別と対処方法
5.1. MySQLが稼働しているか
5.2. 通信を許可しているか

6. WordPressのデータベース接続確立エラー関連のログ
6.1. WordPressのデバックログ
6.2. MySQLのエラーログ
6.3. OSのsyslog(シスログ)

更新履歴

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

記事で取り上げている「データベース接続確立エラー」とは何か簡単に触れます。

1.1. ブラウザに表示されるWordPressのエラーメッセージ

データベース接続確立エラーは、ブラウザに表示されるWordPressのエラーメッセージです。

1.2. Error establishing a database connectionと表示される場合もある

データベース接続確立エラーは、Error establishing a database connectionの表示の場合もあります。

データベース接続確立エラー(Error establishing a database connection)

1.3. Error establishing a database connectionの意味

Error establishing a database connectionは「WordPressがデータベースに接続できない状態」を意味するメッセージです。

1.4. WordPressで使用するデータベースはMySQL

WordPressの記事などのデータはデータベースに保存されます。 WordPressが使用するデータベースはMySQLです。

2. データベース接続確立エラーに関係するMySQLとは

WordPressが使用するデータベースはMySQLとは何か、初心者向けの解説になります。

2.1. データベースはデータの集まりのこと

データベースは、簡単にいうとデータの集まりのことをいいます。

2.2. MySQLはデータベースを管理するソフトウェア

MySQLは、サーバーにインストールして使用するデータベースを管理するソフトウェアです。

2.3. データベース領域>テーブル>カラム>データという構成で管理する

MySQLは、データベース領域>テーブル>カラム>データという構成で管理します。 データベース領域はWordPressインストール前に作成しておく必要があります。 テーブルとカラムはWordPressがインストール時に自動で作成されます。

2.4. データベース領域毎にMySQLアカウントが設定できる

MySQLのデータベース領域は個別にMySQLアカウントが設定できます。 WordPressは、MySQLのデータベース領域(DB_NAME)とMySQLアカウント(DB_USER、DB_PASSWORD)、MySQLがインストールされているサーバー(DB_HOST)を指定してMySQLに接続します。

3. WordPressレベルの原因判別と対処方法

WordPressレベルの原因判別と対処方法です。 MySQLのデータベース領域(DB_NAME)とMySQLアカウント(DB_USER、DB_PASSWORD)、MySQLがインストールされているサーバー(DB_HOST)はWordPressの設定ファイル(wp-config.php)に記述します。 wp-config.phpが正しく記述され、正しく設置されているかチェックする内容となっていますので、初級者でも扱えると思います。

3.1. wp-config.phpが定位置に置かれているか

wp-config.phpが定位置の<WordPress設置フォルダ>の直下にあるか確認します。 何らかの操作で削除してしまったり、名前を変更したままになっていたり、移動してしまったりしていないか確認します。

wp-config.phpが定位置にないようでしたら、データベース接続確立エラーの原因となりますので、WordPressがMySQLに接続できるよう、wp-config.phpを定位置に置かれるように対処します。

3.2. wp-config.phpがPHPの文字コードの設定と同じか

PHPの設定とエディタでファイルを開いた際に表示される文字コードが同じか確認します。

WordPressはPHPでプログラミングされていますので、PHP実行環境がWordPressを動作させます。 wp-config.phpの文字コードがPHPの設定と異なる場合、WordPressが設定を読み込めず、データベース接続確立エラーの原因となりますので、同じになるよう対処します。

3.3. wp-config.phpのデータベースの設定が正しいか

wp-config.phpのデータベースの設定が正しいか確認します。

データベース名(データベース領域名)やMySQLアカウントのパスワードを何らかの理由で変更されたのに反映されていない場合など、 データベース接続確立エラーの原因となりますので、正しい接続情報を確認してwp-config.phpに記述します。

3.4. マルチサイトでドメイン設定に整合が起きていないか

マルチサイトの場合は、wp-config.phpに設定したDOMAIN_CURRENT_SITEとデータベースに保存されたドメインに不整合がないか確認します。

マルチサイトを利用しているWordPressを別ドメインに移設するなどして、 wp-config.phpに設定したDOMAIN_CURRENT_SITEのドメインとデータベースに保存されたドメインに不整合があるとデータベース接続確立エラーになる場合があります。

マルチサイトとは

マルチサイトは、1つのWordPressのダッシュボードから複数のWebサイトのネットワークを作成および管理できるWordPressのインストール方法です。 マルチサイトにすると、すべてのWebサイトを1つの場所から更新することができます。

4. MySQLレベルの原因判別と対処方法

MySQLレベルの原因判別と対処方法です。 MySQLのデータベース領域やMySQLアカウントがあるかなどをチェックする内容となっています。

4.1. MySQLのデータベース領域あるか

MySQLのデータベース領域あるか確認します。 wp-config.phpに設定したMySQLの接続先に設定したデータベース領域がないと当然データベース接続確立エラーとなります。

4.2. データベース領域で利用できるアカウントとなっているか

MySQLアカウントでPHPMyAdminにログイン、もしくはmysqlコマンドで接続して「show databases」を実行して、該当のデータベース領域名が表示されるか確認しましょう。 wp-config.phpに設定したMySQLのアカウントで設定したデータベース領域が利用できる設定になっていないとデータベース接続確立エラーとなります。

4.3. 認証方式が変わっていないか

MySQLのバージョンアップした後に「WordPressのデータベース接続確立エラー」になった場合はMySQLの認証方式などを確認して見るとよいと思います。

たとえば、MySQL8からは、デフォルトのユーザー認証方式がmysql_native_password ではなく、caching_sha2_passwordになっています。

5. OS/NWレベルの原因判別と対処方法

wp-config.phpに設定した接続先とアカウントでMySQLに接続できない場合はOSやNW(ネットワーク)のどこかに原因があります。 OSやNWの原因を判別するにはroot権限のサーバアカウントが必要です。 共用のレンタルサーバーやroot権限のサーバアカウントが使えない場合は判別できませんので、管理元にお問合せする必要があります。

5.1. MySQLが稼働しているか

MySQLが稼働していない場合は当然接続できません。MySQLの停止原因について確認していきます。

通常停止か

MySQLのログファイルを見て通常停止時のログが記録されている場合は、停止コマンドが実行されたことが原因となります。 オペレーションミス、起動停止を行うプログラムの不具合が該当すると思います。

異常停止か

MySQLのログファイルを見て通常停止時のログが記録されておらず、停止している場合は、MySQLのプロセスを落すプログラムなどを確認します。

5.2. 通信を許可しているか

FW(ファイアウォール)でFWの接続ポートに対して、WordPressが稼働するサーバーからの接続が許可されていない場合疎通できません。 設定ミスをしていないか確認しましょう。

6. WordPressのデータベース接続確立エラー関連のログ

WordPressのデータベース接続確立エラー関連のログについてです。

6.1. WordPressのデバックログ

wp-config.phpに以下を追記するとdebug.logというファイル名でWordPressのデバッグログが出力されます。

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

6.2. MySQLのエラーログ

MySQLのエラーログはLinuxの場合/etc/my.cnfのlog-errorに設定されたパスに出力されます。 デフォルトでは/var/log/mysqld.logとなっていると思います。

6.3. OSのsyslog(シスログ)

syslog(シスログ)はOSのログ出力の機構です。 Linuxの場合、シスログ(/var/log/messages)に出力されます。

たとえば、「Out of memory: Kill process 12611 (mysqld) score 79 or sacrifice child」というメッセージが出力されます。 メモリ不足の場合にOOM KillerというLinuxの機構がサーバが落ちないように任意のプロセスを落とします。 つまり、メモリ不足でOOM KillerがMySQLのプロセスをKill(強制停止)させることがあります。 この場合、サーバーのメモリ容量を増やす、リクエストの処理速度を上げる、サーバ構成を変更する、などの対策が必要です。

更新履歴

更新履歴になります。

トップ技術データベースデータベース接続確立エラー