SOFTELメモ

</> 技術者募集

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

問題

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

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

php-med-transmysql

解決策

ソースからインストールした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

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

関連するメモ

コメント