OS X 10.8.2 MySQL PHP PDOでエラーが出る
fuelのmigrateで下記エラーが出る
$ oil refine migrate Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/hanai/work/hoge/fuel/core/classes/database/pdo/connection.php on 89
デフォルトのphp.iniが/var/mysql/mysql.sockを見に行くような設定になっているのが原因。homebrewでmysqlをインストールした場合だと/tmp/mysql.sockなのでそっちを見るように変更する。
$ diff -u /etc/php.ini.default /etc/php.ini --- /etc/php.ini.default 2012-07-26 23:49:20.000000000 +0900 +++ /etc/php.ini 2012-12-07 01:13:46.000000000 +0900 @@ -1074,7 +1074,8 @@ ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. ; http://php.net/pdo_mysql.default-socket -pdo_mysql.default_socket=/var/mysql/mysql.sock +;pdo_mysql.default_socket=/var/mysql/mysql.sock +pdo_mysql.default_socket=/tmp/mysql.sock [Phar] ; http://php.net/phar.readonly @@ -1228,7 +1229,8 @@ ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. ; http://php.net/mysql.default-socket -mysql.default_socket = /var/mysql/mysql.sock +;mysql.default_socket = /var/mysql/mysql.sock +mysql.default_socket = /tmp/mysql.sock ; Default host for mysql_connect() (doesn't apply in safe mode). ; http://php.net/mysql.default-host @@ -1287,7 +1289,8 @@ ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. ; http://php.net/mysqli.default-socket -mysqli.default_socket = /var/mysql/mysql.sock +;mysqli.default_socket = /var/mysql/mysql.sock +mysqli.default_socket = /tmp/mysql.sock ; Default host for mysql_connect() (doesn't apply in safe mode). ; http://php.net/mysqli.default-host