Macでphpを開発中に Warning: mysql_connect(): [2002] No such file or directory が出たとき
mysql.sockのパスが違うのが原因です。
対応方法
1.mysql.sockファイルを探す
どこにあるか探しましょう。
1 2 |
sudo find / -name mysql.sock |
2.confファイルにphp_valueで設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# /path/toの箇所は適宜変更して下さい。 vi /private/etc/apache2/other/sample.conf <VirtualHost *:80> DocumentRoot "/path/to/www" ServerName local.localhost <Directory "/path/to/www"> Options Includes ExecCGI FollowSymLinks AllowOverride All order deny,allow allow from All php_value mysql.default_socket /path/to/mysql.sock php_value mysqli.default_socket /path/to/mysql.sock </Directory> </VirtualHost> |
3.確認
1 2 3 4 |
vi /path/to/www/info.php <?php phpinfo(); |
でphpinfoを表示するものを定義し、
http://local.localhost/info.php
で確認しましょう
その他の対応
php.iniの該当箇所を
1 2 |
mysql.default_socket /path/to/mysql.sock |
を変える。
.htaccessに
1 2 |
php_value mysql.default_socket /path/to/mysql.sock |
を定義する。
個人的にはオススメしませんが、.phpファイルに直接
1 2 |
ini_set("mysql.default_socket","/path/to/mysql.sock"); |
という手もあります。