「ソケット経由でローカル 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 サイトの他の関連記事を参照してください。