edo1z blog

プログラミングなどに関するブログです

Mac10.8.3 cakePHPとMySQLの連動エラーの対応(XAMPP使用時)

cakePHPでBakeしようとしたら、下記エラーが出た。

Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)

XAMPPのphpinfo()で、MYSQL_SOCKETのパスを確認し、上記エラーに出ている/var/mysql/mysql.sockに、MYSQL_SOCKETのパスのシンボリックリンクを作成すれば解決できた。

sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock /var/mysql/mysql.sock

色々なブログに、php.iniやmy.cnfのdefault.socketやportの設定をするなど書いてあったが、XAMPPは設定済みだった。また、cakePHPのdatabase.phpに、直接ソケットの指定をするということで、下記を記述するなどもあったが、これを記述しても上記エラー表示は変わらなかった。

'port' => '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock',

また、database.phpの、'host' => 'localhost',を、'host' => '127.0.0.1',に変更するという記載もあったが、これを変更しても、エラーは解決しなかった。(エラーの表示は下記に変わった。)尚、今回の解決策は、database.phpの、'host' => 'localhost',という設定でないといけない。'host' => '127.0.0.1'にしてしまうと、シンボリックリンクを作成しても、解決しない。

PDO::__construct(): [2002] Connection refused (trying to connect via tcp://127.0.0.1:3306)