読者です 読者をやめる 読者になる 読者になる

iku8log

飛行機って本当怖いよね。Webエンジニアとしてサービス作ったり、アフィリエイトしたりしてます。

MacOS X YosemiteでWordPress構築時に「データベース接続確立エラー」となる原因

f:id:iku8:20161022171655p:plain

Vagrant + VirtualBoxの環境ではこのようなエラーはほとんど起きないのですが、MacWordPressを構築しようと思った時、「データベース接続確立エラー」で詰まりました..。

f:id:iku8:20161022172233p:plain

今回の環境

MAMPやXAMPPは一切使っていません! 今回はMacにデフォルトで付いているので、それらを使いました。WordPressは公式サイトより最新版をダウンロードしました。

考えられる原因

考えられる原因としては、データベース情報を設定する項目(wp-config.php)があるのですが、その情報がまちがっているか、MySQLが起動していないなどがあるかと思います。

ですが今回どうも全て問題ないようです。mysqlにwp-config.phpに記述している情報でログインしてみたところ問題なかったです。

とたどり着いたのが

qiita.com

これです。

どうやらMySQLbrew installしていたっぽいです。自分のMacながら忘れていました。

$ brew list | grep mysql

普通にmysqlと出てきちゃいました^^

mysqlbrew installすると何故だめかというと、本来なされるべきはずの設定が行われないから?です。

MySQLの設定をちゃんとして解決

大まかな流れとしては以下の通りです。

実際に手を動かしていきますよ〜!

php.iniを作る

/etc/php.ini.defaultというファイルがあるはずなので、コピーしてphp.iniを作ります

$ sudo cp /etc/php.ini.default /etc/php.ini

次に進みます

mysql.sockのパスを見つける

だいたい /tmp/mysql.sockのように/tmpにあるようですが、ない場合はfindコマンドで探しましょう(結構長い)。

$ sudo find / -name "mysql.sock"

余談ですが/private/tmpとかにあったりします。/tmpにも/private/tmpにもmysql.sockはある場合は/tmpの方をphp.iniに記述するのが良さそうです。 privateの方は再起動時にファイルが削除されるっぽいです(本当かな?)

次に進みます

php.iniにmysql.sockのパスを書く

先ほど見つけたパスをphp.iniに書いていきます。

1000行付近にパスを書く場所があるので以下のように変更します

mysql.default_socket =/tmp/mysql.sock

次に進みます

Apache再起動

なぜApacheの再起動なのか、わからないですが(誰か教えてください)。

$ sudo apachectl restart

mysqlは再起動しなくても良さそうです。

正常にWordPressと連携

以上でMySQLとの設定が完了したので、localhost/wp-adminにアクセスしてみると

f:id:iku8:20161022171638p:plain

という風にサイトが作れるようになりました。

やはりOSやインストール方法が違うとかなり複雑になってしまいますね。

参考サイト

qiita.com