SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】MySQLに接続するときにエラー発生

問題

mysql_connect()をすると次のようなエラー(警告)が発生し、接続できない。

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

解決策

ソースからインストールしたphpとRPMでインストールしたMySQLを使うと発生する。

お互いに想定した場所(デフォルトの場所)にソケットがないのが問題。

以下のどちらかの設定をおこなう。両方設定するとまた入れ違いになるのでどちらかを設定する。

php.iniにMySQLのソケットを設定して、RPMのMySQLに合わせる場合

mysql.default_socket="/var/lib/mysql/mysql.sock"
mysqli.default_socket="/var/lib/mysql/mysql.sock"
pdo_mysql.default_socket="/var/lib/mysql/mysql.sock"

逆に、my.cnf にソケットを設定して、ソースからインストールしたphpに合わせる場合

[client]
#password       = your_password
port            = 3306
#socket          = /var/lib/mysql/mysql.sock #これを変更
socket          = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port            = 3306
#socket          = /var/lib/mysql/mysql.sock #これを変更
socket          = /tmp/mysql.sock

どちらかが相手に合わせる。

関連するメモ

コメント