この記事の例では、php pdo_mysql 接続エラー「接続に失敗しました: SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません」の問題の解決策について説明します。参考のためにみんなで共有してください。具体的な方法は以下の通りです
エラーの説明:
接続失敗: SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません
環境の概要:
MacOS
開発環境 apache mysql phpはxamppで構築しました
xampp は mysql oracle をサポートしており、テストは問題なく、phpinfo は pdo_mysql pdo_pgsql pdo_sqlite をサポートしていることを示しています
その中で、xampp に付属する mysql の代わりに、brew パッケージ管理を使用して mysql をマシンにインストールしました
php pdo 接続エラー 接続に失敗しました: SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません
最初は、URL の書き換えが原因でファイルが見つからないと思いました (nginx から Apache に切り替えたため)。その結果、追跡プログラムは新しい PDO エラーが報告されたことを発見しました
。いくつかの情報を検索して調査した結果、次のことがわかりました:
これは、php.ini 設定ファイルの pdo_mysql.default_socket で指定された間違った mysql.sock パスです
私の mysql.sock ファイルは /private/tmp/mysql.sock にあります
次のように設定します:
1. php.ini を開きます (私のファイルは /private/etc/ にありました)
2. 次の行を見つけます: pdo_mysql.default_socket=/var/mysql/mysql.sock
3. 行を次のように変更します: pdo_mysql.default_socket=/tmp/mysql.sock
4. Apacheを再起動します
1. ここで、新しいシステムまたは PHP を始めたばかりの人の場合、php.ini ファイルは Mac システムに存在しないことを付け加えておきます。
2. /private/etc/ ディレクトリに php.ini.default
を cp する必要があります
php.ini を編集してから
3. ただし、データベースとして xampp mysql を使用する場合は、公式のステップ 2 を使用する必要はなく、次のメソッドを記述するだけです。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。