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

Unix ソケット経由で MySQL に接続できないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-16 07:57:16825ブラウズ

Why Can't I Connect to MySQL via Unix Socket?

Unix ソケット経由で MySQL に接続できません: ソケット 'MySQL' 経由で MySQL に接続できません (2)

接続時PHP の mysqli クラスを使用し、ホストとして「localhost」を指定して MySQL に接続すると、「接続できません」というエラー メッセージが表示されます。ソケット 'MySQL' (2) を介してローカル MySQL サーバーに接続します。」これは、ローカル接続に使用される Unix ソケットに問題があることを示しています。

ローカルホスト接続について

デフォルトでは、MySQL クライアント ライブラリは Unix ドメイン ソケットを使用して、ホストが「localhost」として指定されている場合のローカル MySQL サーバー。ただし、ソケットにアクセスできない場合、またはソケットが存在しない場合は、このエラーが発生します。

トラブルシューティング オプション

この問題を解決するには、いくつかのオプションがあります。

  1. 代わりに IP アドレスを使用する (TCP/IP): ホストを次のように変更します127.0.0.1 またはローカルサーバーの実際の IP アドレス。これにより、接続で Unix ソケットの代わりに TCP/IP ソケットが使用されるようになります。
  2. my.cnf (PHP のソケット設定) を変更します: MySQL 構成ファイル (my.cnf) で、 MySQL がソケットを作成する場所を見つけて、PHP の php.ini の mysqli.default_socket をその場所に設定します。 path.
mysqli.default_socket = /var/run/mysqld/mysqld.sock
  1. 直接ソケット構成:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                              '/var/run/mysqld/mysqld.sock')

ソケットを直接指定すると、デフォルトがオーバーライドされます。 Unix ソケット構成。

あなたの場合、経由でのみ接続できるため、 127.0.0.1、オプション 1 の使用をお勧めします。外部 Web サイトへの接続を許可する必要がある場合は、適切な権限を持つ新しいユーザーを作成し、リモート接続に TCP/IP (オプション 1) を使用する必要があります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。