プログラミング

mysqliでエラー「No such file or directory」が出る【PHP】

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)

これで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

apacheを再起動して確認すればうまくいくと思います。

Leave a Comment