No.366


【phpMyAdmin】No such file or directory

なんでDBアクセスして「ファイルがない」エラーなんだ…

 phpMyAdminを使ったことのある人なら一度は見たことがあると思うこのエラー

mysqli_real_connect(): (HY000/2002): No such file or directory

 エラーメッセージが「ファイルやディレクトリがない」なので困惑するが、わかってみれば理由は単純。MySQLがソケット通信に使うファイルが見つからないというわけだ。

 というわけでTCPで接続すればOK。


対応方法

 config.inc.php中のhostの記載を変更する。

$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['host'] = '127.0.0.1';

 localhostだとmysql.sockを探しに行くけど、localhostならTCP/IPで接続にいくのでFWでもミスしていない限り接続できる。

mysqli_real_connect(): (HY000/2002): No such file or directory - Stack Overflow

 の説明がわかりやすい。

The reason for this is that pma tries to connect to the mysql.socket if you use localhost. If you use 127.0.0.1 PMA makes a TCP connection which should work.

 なるほどね。