Powered by Cloudflare

mysql_real_connectで「No such file or directory」の対処法

Code

PHPでMySQLに接続するときに使うmysql_real_connect関数。いざ使ってみたら、「No such file or directory.」なんてエラーが出て困っている方へ。

意味不明なこのエラーの解決方法と原因を紹介します。僕はWordPressのローカル環境構築をしている最中にこのエラーに出くわしました。実際に解決できたので、順に説明します。

mysql_real_connectで「No such file or directory.」が出る原因

結論は、データベースサーバーへの接続に必要なUNIXドメインソケットが見つからないからです。localhostのMySQLサーバーに接続しようとしたときに発生することが多いエラーとのこと。

もっと簡単に言うと、「データベースサーバーとの通信に使うファイルがないよ〜」ということ。とにかく通信できない状態にあるということです。

No such file or directoryエラーの解決策

解決方法は簡単でして、ホスト名にlocalhostと指定して接続しようとしていたなら、127.0.0.1のようにIPアドレスでの指定に変更するだけ。

IPアドレスでサーバーを指定すると、MySQLiはTCP/IP経由でMySQLへ接続してくれるようになります。TCP/IPとは?という方は、違う方法で接続してくれるようになったと思えば大丈夫です。

今回のエラーは、ローカルにMySQLサーバーに接続する際によく起こる問題のようなので、WordPress等でも気をつけてみてくださいね。