MySQL SQLSTATE[HY000] [2002] No such file or directory エラーが発生

2019年10月23日

お客様から調査依頼で、さくらサーバーのMySqlに接続しようとしたところ、下記のようなMySqlエラーが発生しました。

■エラーメッセージ:

元の実装は下記の通りです。

上記、new PDOした際に、「SQLSTATE[HY000] [2002] No such file or directory」というエラーが発生しました。
「No such file or directory」を見た瞬間に、思考停止してしまいました。見たこともない、深刻なエラーのように見えるからです。

ネットで調べたら、php.ini修正やapache再起動など面倒なキーワードが目に入りました。これ、ヤバいと思って、本家サイトのサンプルを確認したところ、$dsnの中の各パラメータの間に、スペースがないことを気付いて、まさか、これ?と半信半疑で、スペースをとってもう一度確認したら、なんと、直りました!!!

■元の実装

■修正後の実装

これで解決!時間が掛かる問題と思いましたが、意外と簡単に直しました。PDOは厳しいですね、少しスペースを入れたら、すぐに怒るのですね。よく考えたら、プログラム世界に、よくあることを気付きました。例えば、YAMLもそうです。大丈夫ようなところにスペースを入れたら、すぐに怒ります。皆さんも気を付けてね。ヤバそうなエラーがあった場合、まずは、スペースを入れたかを確認しましょう。

■追伸
自分も分からなくなりましたが、後日に、下記ようなエラーメッセージが吐き出されました。同じように、$dsnのスペースを取ったら、エラーが消えて、正常に動作しました。

スポンサーリンク