ホームページ > バックエンド開発 > PHPチュートリアル > PHP スクリプトがソケット経由で MySQL サーバーに接続できないのはなぜですか?

PHP スクリプトがソケット経由で MySQL サーバーに接続できないのはなぜですか?

Patricia Arquette
リリース: 2024-12-08 21:05:18
オリジナル
562 人が閲覧しました

Why Can't My PHP Script Connect to the MySQL Server via Socket?

エラー: ソケット経由で MySQL サーバーに接続できません

問題

PHP MySQLi クラスを使用して MySQL データベースに接続しようとすると、次のエラー発生:

mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)
ログイン後にコピー

分析

このエラー メッセージは、MySQL クライアント ライブラリが「MySQL」という名前の Unix ドメイン ソケット経由でサーバーに接続しようとしているが、ソケットが存在しないことを示しています。

MySQL ドキュメントによると、クライアント ライブラリはホスト名「localhost」を Unix システム上で特別に扱います。デフォルトでは、ポート番号が指定されている場合でも、Unix ソケット ファイルを使用して接続を試行します。

解決策

このエラーを解決するには、次のオプションを検討してください:

1. TCP/IP を使用します:

接続を確立するときに、「localhost」の代わりにホスト名として 127.0.0.1 を使用します。これにより、ライブラリは TCP/IP 接続を使用するようになり、信頼性と移植性が向上します。

2. php.ini のソケットを変更します:

MySQL 構成ファイル (my.cnf) を見つけて、MySQL がソケットを作成するパスを見つけます。次に、PHP の mysqli.default_socket ディレクティブを php.ini ファイル内のそのパスに設定します。

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

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

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

追加情報

リモートから接続する場合IP アドレス。MySQL データベースでの外部接続に必要な権限を持つユーザーを作成していることを確認してください。

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

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