mysql_real_connectで「No such file or directory」の対処法
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等でも気をつけてみてくださいね。