PDO を使用して MySQL データベースに接続しようとすると、次のエラーが発生する場合があります。
Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in ...
このエラーは、PDO が Unix ソケット経由で MySQL に接続しようとしているが、コードが TCP/IP 接続用に構成されている場合に発生します。
次のことが可能です。この問題を解決するには、PDO コンストラクターで正しい接続パラメーターを指定します。ホスト名として「localhost」を使用する代わりに、「127.0.0.1」を使用して、ローカル マシンへの TCP/IP 接続を示します。
<code class="php">new PDO('mysql:host=127.0.0.1;port=3306;dbname=test', 'username', 'password');</code>
Unix ソケット経由で接続する場合は、次のように指定できます。次のようなソケットへのパス:
<code class="php">new PDO('mysql:unix_socket=/tmp/mysql.sock;dbname=test', 'username', 'password');</code>
php.ini ファイル内の pdo_mysql.default_socket 構成を変更して、デフォルトの Unix ソケットの場所を設定することもできます。
以上がPDO 経由で MySQL に接続すると「そのようなファイルまたはディレクトリはありません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。