PHPでMySQLに接続しようとした時に下記のようなエラーが出た場合の対処法をまとめました。
PHP Warning: mysqli::__construct(): (HY000/2002): No such file or directory
このエラーは、PHPとMySQLでソケットファイル(mysql.socket)のパスが違う場合に起きます。
まず、以下のコマンドでmysql.socketの場所を確認します。
mysql_config –socket
すると以下のように表示されました。
/tmp/mysql.sock
このmysql.socketの場所をphp.iniで設定すればOKです。
php.iniの場所がわからない場合は以下のコマンドで確認しましょう。
php –ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
これでphp.iniが「/etc」にあるのがわかります。
「/etc」内のファイルを確認し、php.iniがない場合、以下のコマンドで「php.ini.default」を複製すればOKです。
sudo cp /etc/php.ini.default /etc/php.ini
あとはphp.ini内で以下のように設定します。
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock
apacheを再起動して確認すればうまくいくと思います。
Leave a Comment