Netassist Blog

WordPressでデータベース接続エラーとなってしまうケースへの対応例

こんにちは、技術部のkomaiです。

最近はWordPress関連を調査や構築するケースが多くなってきている中

WordPressでデータベース接続エラーとなってしまうケースへの対応例

について記載します。

WordPressのインストール時に

「データベース接続確立のエラー インストールできません」

WordPressを導入した人なら一度は遭遇したケースとおもいますが
当然上記で調べるとたくさんの回答がでてきます。

調べた内容はどこも主な原因は以下と記載されています。

  • wp-config.phpにてDB情報を正確に記載されているか。
  • DB(MySQL/MariaDBなど)に必要なアカウントとデータベースを作成しているか。

特殊な設定や環境でない限り上記を行えば接続エラーはでないはずですが
今回はそれでもエラーが発生した例を記載します。

以下サンプルとして”wp-config.php”の設定箇所において

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

/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘testuser’);

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

/** MySQL のホスト名 */
define(‘DB_HOST’, ‘localhost’);

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

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

上記内容で接続できるかローカルより確認。

# mysql -utestuser -p -h localhost testdb

 

どこを調べてもたいてい上記を確認となると思いますが上記問題がない、
それでも接続エラーとなるケースがありました。

以下、現象が起きた環境

CentOS release 6.8
Wordpress バージョン : 4.7.2
php 5.5 ※ソースインストール
MySQL 5.1

ソースインストールした為パスの問題が影響しているのか
mysqlユーザ追加時の権限なども見直してみたが特定できず
hostsの問題、LISTENなのかなど色々調査しましたが変わらず・・・・

結論として
色々と試行錯誤してループバックアドレスを指定すると無事に接続することが出来ました。

define(‘DB_HOST’, ‘localhost‘); → define(‘DB_HOST’, ‘127.0.0.1‘);

明確な原因はつかめていないのですが、
取り急ぎ、同様の現象に詰まっている方の参考になれば幸いです。