DBに接続できないときはpdo_mysql.default_socketを確認

More than 1 year has passed since last update.

CakePHPでローカルのDBに接続できるときにエラーが出たので備忘録として書いておきます。

対処方法はフレームワーク関係なくPHPであれば共通かと思います。


前提

OS:macOS High Sierra 10.13.3

フレームワーク:CakePHP 3.5.12

データベース:MySQL(XAMPP 7.2.2)

データベースに接続できない

スクリーンショット 2018-02-25 15.45.12.png

CakePHPではapp.phpというファイルにデータベース接続の情報を記述するが、特に問題はなさそう。


対処

php.iniの下記の項目が空だったため、データベースに接続ができなかった。

スクリーンショット 2018-02-25 15.59.23.png

MySQLが使用しているsocket情報は以下。

スクリーンショット 2018-02-25 16.05.37.png

パスを合わせると接続できた。

スクリーンショット 2018-02-25 16.00.38.png

スクリーンショット 2018-02-25 16.02.27.png


その他


php.iniの見つけ方

php -i | grep php.ini


socketのパスの見つけ方(XAMPPの場合)

/Applications/XAMPP/xamppfiles/etc/my.cnf

にsocketの情報が記載されている。php.iniに記載するパスと合わせれば良い


参考

CakePHPでデータベースの連携 - http://www.aipacommander.com/entry/2014/05/20/130000

【php】MySQLに接続するときにエラー発生 - https://www.softel.co.jp/blogs/tech/archives/2187