ホームページ > データベース > mysql チュートリアル > ソケット経由でローカル MySQL サーバーに接続できないのはなぜですか?

ソケット経由でローカル MySQL サーバーに接続できないのはなぜですか?

Linda Hamilton
リリース: 2024-12-10 20:33:17
オリジナル
1081 人が閲覧しました

Why Can't I Connect to My Local MySQL Server Through the Socket?

接続の難問を明らかにする: MySQL ソケット接続を理解する

PHP の mysqli クラスを使用して MySQL データベース接続を確立しようとすると、次のような問題が発生する可能性があります。エラー: 「[ソケット 'MySQL' (2) を介してローカル MySQL サーバーに接続できません]」。このエラーは、MySQL クライアントが TCP/IP 接続ではなく「localhost」の Unix ドメイン ソケット経由で接続しようとしたときに発生します。

Unix ソケットと TCP/IP 接続の比較

デフォルトでは、Unix システム上の MySQL プログラムは、「localhost」に接続するときに TCP/IP 接続よりも Unix ドメイン ソケットを優先します。ただし、ソケットが使用できない場合、または特に TCP/IP 接続が必要な場合は、別の方法を使用する必要があります。

問題の解決

いくつかの解決策でこの問題に対処できます。問題:

1.明示的な TCP/IP 接続:

接続文字列で「localhost」の代わりに、IP アドレス「127.0.0.1」またはローカル サーバーのホスト名を使用します。これにより、クライアントは強制的に TCP/IP 接続を確立します。

2. PHP 構成の変更:

MySQL 構成ファイル (my.cnf) を見つけて、MySQL がソケットを確立するパスを見つけます。 PHP の mysqli.default_socket を php.ini.

3 のこのパスに設定します。明示的なソケット構成:

PHP スクリプトで接続を開くときにソケット パスを直接指定します:

$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
ログイン後にコピー

結論

MySQL で使用される接続メカニズムを理解すると、このエラーを克服してデータベース接続を正常に確立できます。 Unix ドメイン ソケットを使用するとパフォーマンスとセキュリティの利点が得られる可能性がありますが、場合によっては明示的な TCP/IP 接続が必要になる場合があることに注意してください。

以上がソケット経由でローカル MySQL サーバーに接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート