問題
ローカルに wordpress と mysql をダウンロードして動作環境を構築した場合、wordpress を開いたら以下のエラーメッセージが表示されます。
Error establishing a database connection
wp-config.php
でデータベースの接続情報を正しく記入しましたが php から mysql に接続できませんでした。 mysql -uroot -p
コマンドでの接続は問題ありません。 netstat -na | grep 3306
で確認して mysql サーバーは正しく起動しているようです。
いろいろ調べて試したところ、以下の方法で解決できました。
解決案
php.ini
を編集する必要があるため、このファイルの格納先を調べます。なければ新規作成します。
$ php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: (none) Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
Loaded Configuration File の行に (none)
と書いてある場合は php.ini
が存在していないことを示していますので、php.ini
を新規作成します。
sudo cp /etc/php.ini.default /etc/php.ini
再度 php -ini
を実行します。
$ php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
Loaded Configuration File 行の出力は /etc/php.ini
と変わりました。
php.ini
を編集し、default_socket
の値を /tmp/mysql.sock
に指定します。
sudo nano /etc/php.ini
変更箇所:
pdo_mysql.default_socket = /tmp/mysql.sock ... mysqli.default_socket = /tmp/mysql.sock
補足
以上で解決できなければ、この記事の問題と別問題の可能性があります。より多く情報を得るために、 wordpress の DEBUG 出力を ON にします。
wordpress の wp-config.php を編集して以下の設定を変更します。
define('WP_DEBUG', true); define('WP_DEBUG', false);