Edited at

PHP の MySQL で "No such file or directory" と出た時の対処方法

More than 5 years have passed since last update.


症状


  • MacOS X の MAMP で WebからのDB接続は問題ない

  • けど、コマンドラインからやると接続エラー

  • エラー内容は "No such file or directory" となる


原因

mysql.sock の場所の指定がおかしいから


対策

以下で治った

ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock


調べ方

以下のコマンドで、設定しているsockファイルの場所を調べる

% php -i | grep socket

mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
mysqli.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
pdo_mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock

コード上で、mysql_connect 当の後に

mysql_error();

でエラー内容見られるよ


参考

php - Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in - Stack Overflow

http://stackoverflow.com/questions/4219970/warning-mysql-connect-2002-no-such-file-or-directory-trying-to-connect-vi