ホームページ > バックエンド開発 > PHPチュートリアル > ソケット経由でローカル MySQL サーバーに接続できないのはなぜですか?それを修正するにはどうすればよいですか?

ソケット経由でローカル MySQL サーバーに接続できないのはなぜですか?それを修正するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-30 20:32:12
オリジナル
673 人が閲覧しました

Why Can't I Connect to My Local MySQL Server Through the Socket, and How Can I Fix It?

「ソケット経由でローカル MySQL サーバーに接続できません」エラーのトラブルシューティング

エラー「ソケット経由でローカル MySQL サーバーに接続できません」 「socket 'MySQL' (2)」は、PHP MySQLi クラスを使用して MySQL データベースに接続しようとすると発生します。このエラーは、TCP/IP 接続ではなく Unix ドメイン ソケットが試行されていることを示します。

MySQL 接続用の Unix ドメイン ソケットについて

「localhost」を指定する場合" ホストとして、MySQL クライアント ライブラリはデフォルトで接続に Unix ドメイン ソケットを利用します。 TCP/IP 接続とは異なり、Unix ドメイン ソケットはオペレーティング システム内のソケット ファイルを利用して MySQL との通信を確立します。

接続の問題を解決する

いくつかの方法があります。この接続の問題を解決します:

1. TCP/IP 接続を指定します:

Unix ドメイン ソケットの代わりに TCP/IP 接続を強制するには、接続時にホストとして「127.0.0.1」を使用します。これにより、「localhost」を使用している場合でも TCP/IP 接続が保証されます。

2. Unix ドメイン ソケットを構成します:

Unix ドメイン ソケットを使用する場合は、MySQL 構成ファイル「my.cnf」でソケットのパスを見つけ、PHP の「mysqli.default_socket」をそのパスに設定します。

3. PHP スクリプトでソケットを明示的に構成する:

接続を開くときに、PHP スクリプトで直接ソケットを構成することもできます。例:

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

接続方法の選択

最適な接続方法は、特定の環境によって異なります。 Unix ドメイン ソケットはより高速で安全ですが、ソケット パスを構成する必要があります。一方、TCP/IP 接続には特別な構成は必要ありませんが、速度が遅くなる可能性があります。

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

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