MySQLのソケットエラー

スクリプト(クライアント)などからMySQLに接続するとき次のようなエラーが出てデータベースサーバーに接続できないときは、 クライアントが参照しに行くソケットのパスが間違っていることが考えられます。

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

PHPでこのエラーが出るときはそもそもphp.iniの設定かMySQLの設定が間違っている。

例示のソケットパスはそれぞれ違うのでMySQLの設定に合わせてください。

php.iniを変更する方法

/etc/php.iniのmysql.default_socketを編集する。

mysql.default_socket = /tmp/mysql.sock

設定の反映にはApacheの再起動が必要です。

httpd.confを変更する方法

httpd.confを編集する。

<Directory />
php_value mysql.default_socket /tmp/mysql.sock
</Directory>

ディレクトリごとに設定が可能です。

設定の反映にはApacheの再起動が必要です。

.htaccessを設置する方法

下記のような.htaccessを設置します。

php_value mysql.default_socket /tmp/mysql.sock

設定の反映にApacheの再起動は不要です。

ini_setで変更する方法

PHPファイルの中に書きます。

ini_set("mysql.default_socket","/tmp/mysql.sock");

mysql_connectでソケットをしていする方法

mysql_connect ( "localhost:/tmp/mysql.sock", "USERNAME", "PASSWORD" );

関連記事

スポンサーリンク

chia keys verify pkで署名を検証する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る