MySQLがlocalhost経由でデータベースに接続できない問題の詳細な説明

黄舟
リリース: 2017-03-27 14:03:33
オリジナル
2168 人が閲覧しました

次のエディタは、MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策を提供します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして、一緒に見てみましょう

問題: あるサーバーの PHP プログラムはローカルホスト アドレスを介してデータベースに接続できませんが、127.0.0.1 に設定すると正常に接続でき、他のデータベースサーバーには正常に接続できます。 MySQL の権限が正しく設定されており、mysql コマンド ライン クライアントを介してデータベースに正常に接続できます。

分析: これは、ソケットが正しく設定されていない典型的な状況です。

MySQL データベース に接続するには、 TCP/IP (一般的に理解されているポート タイプ) と Unix ソケット (一般にソケットまたはソックと呼ばれます) の 2 つの方法があります。ほとんどの場合、ローカル マシン 127.0.0.1 を表すために localhost を使用できますが、MySQL に接続する場合、この 2 つを混合することはできず、MySQL の権限設定でも localhost と 127.0.0.1 が別々に設定されます。 127.0.0.1 に設定すると、システムは TCP/IP 経由でデータベースに接続します。localhost に設定すると、システムはソケット経由でデータベースに接続します。

解決策: まず、ローカル MySQL のソケット ファイルがどこにあるかを確認します。view コマンドは次のとおりです:

mysqld --verbose --help | grep socket
ログイン後にコピー

出力結果には、ソケット ファイルの場所が表示されます。例: このサーバーは

socket      /var/run/mysqld/mysqld.sock
ログイン後にコピー
と表示します。それに合わせてphpの

設定ファイル

php.iniを変更します。 この項目を見つけます:

mysql.default_socket =
ログイン後にコピー

一般的に、この項目は空です。次のように変更します:

mysql.default_socket = /var/run/mysqld/mysqld.sock
ログイン後にコピー

ここで、前のステップで

queried

したファイルを作成し、状況に応じて設定する必要があります。この時点で、PHP 設定は CLI (コマンド ライン) モードまたは CGI モードの場合は変更されており、FASTCGI モードの場合は、fastcgi プロセスを再起動する必要があります。

以上がMySQLがlocalhost経由でデータベースに接続できない問題の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!