ホームページ >バックエンド開発 >PHPチュートリアル >php pdo 接続エラー 接続に失敗しました: SQLSTATE[HY000] [2002]_PHP チュートリアル

php pdo 接続エラー 接続に失敗しました: SQLSTATE[HY000] [2002]_PHP チュートリアル

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

php pdo 接続エラー 接続に失敗しました: SQLSTATE[HY000] [2002]

次に、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 package Management を使用して mysql をマシンにインストールしました

php pdo connection error Connection failed: SQLSTATE[HY000] [2002] No such file or directory

最初は、ファイルが見つからないのは 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 再起動

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