スクリプト(クライアント)などからMySQLに接続するとき次のようなエラーが出てデータベースサーバーに接続できないときは、 クライアントが参照しに行くソケットのパスが間違っていることが考えられます。
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
PHPでこのエラーが出るときはそもそもphp.iniの設定かMySQLの設定が間違っている。
例示のソケットパスはそれぞれ違うのでMySQLの設定に合わせてください。
/etc/php.iniのmysql.default_socketを編集する。
mysql.default_socket = /tmp/mysql.sock
設定の反映にはApacheの再起動が必要です。
httpd.confを編集する。
<Directory /> php_value mysql.default_socket /tmp/mysql.sock </Directory>
ディレクトリごとに設定が可能です。
設定の反映にはApacheの再起動が必要です。
下記のような.htaccessを設置します。
php_value mysql.default_socket /tmp/mysql.sock
設定の反映にApacheの再起動は不要です。
PHPファイルの中に書きます。
ini_set("mysql.default_socket","/tmp/mysql.sock");
mysql_connect ( "localhost:/tmp/mysql.sock", "USERNAME", "PASSWORD" );