ホームページ  >  記事  >  バックエンド開発  >  php が pdo 接続を使用するときに接続に失敗した SQLSTATE エラーの解決策、pdosqlstate_PHP チュートリアル

php が pdo 接続を使用するときに接続に失敗した SQLSTATE エラーの解決策、pdosqlstate_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:11:34822ブラウズ

php は pdo 接続を使用してエラーを報告します接続失敗 SQLSTATE ソリューション、pdosqlstate

この記事の例では、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 にあります

次のように設定します:

コードをコピーします コードは次のとおりです:
pdo_mysql.default_socket=/private/tmp/mysql.sock

mysql.sock の場所がわからない場合は、検索してください (コンパイルとインストールは、yum、apt-get、brew などのパッケージ管理ツールのインストール場所とは異なるため)
sudo find / -name '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 を使用する必要はなく、次のメソッドを記述するだけです。

コードをコピーします コードは次のとおりです:
pdo_mysql.default_socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock


解決策 3:
コードをコピーします コードは次のとおりです:
sudo vim /etc/php.ini

次の 3 つの元々空白の値を次のように設定します:
コードをコピーします コードは次のとおりです:
/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket =/tmp/mysql.sock


すべて変更されました
修正して使用してください
コードをコピーします コードは次のとおりです:
sudo /usr/sbin/apachectl restart

問題が解決しました!

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/928229.html技術記事 pdo 接続エラーを使用した php の解決策 接続に失敗しました SQLSTATE、pdosqlstate この記事では、php pdo_mysql 接続エラーの例について説明します 接続に失敗しました: SQLSTATE[HY000] [2002] そのようなファイルはありません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。