MySQLデータベースホスト127.0.0.1とlocalhostの違い

MySQLデータベースホスト127.0.0.1とlocalhostの違い

私の友人の多くは、127.0.0.1 と localhost の違いがわからず、問題に遭遇するかもしれません。しかし、localhost を使用して接続できないが、127.0.0.1 に変更すると接続できることに気付くことがあります。では、それらの違いは何でしょうか? 紹介しましょう。

  1. mysql -h 127.0.0.1 を使用する場合、TCP/IP を使用して接続します。MySQL サーバーは、接続が 127.0.0.1 または "localhost.localdomain" から行われているものと認識します。
  2. mysql -h localhost を使用すると、TCP/IP 接続は使用されず、Unix ソケットが使用されます。このとき、mysql サーバーはクライアントが "localhost" からのものであると認識します。
  3. MySQL 権限管理における「localhost」には特定の意味があります。

注: 2 つの接続方法は異なりますが、localhost がデフォルトの 127.0.0.1 の場合、両方の接続方法で使用される権限レコードは次の 1 行目のレコードになります (レコードが最初に来て最初に一致するため)

************************** 1. 行 **************************** 
ホスト: ローカルホスト 
ユーザー: root 
...... 
************************** 2. 行 **************************** 
ホスト: 127.0.0.1 
ユーザー: root

証明する:

シェル>mysql -h 127.0.0.1 
mysql> ステータス; 
現在のユーザー: root@localhost 
SSL: 使用されていません 
現在のページャ: stdout 
出力ファイルの使用: '' 
区切り文字の使用: ; 
サーバーバージョン: 5.1.33-log ソース配布 
プロトコルバージョン: 10 
接続: TCP/IP経由の127.0.0.1 
シェル> mysql -h locahostmysql> ステータス; 
現在のユーザー: root@localhost 
SSL: 使用されていません 
現在のページャ: stdout 
出力ファイルの使用: '' 
区切り文字の使用: ; 
サーバーバージョン: 5.1.33-log ソース配布 
プロトコルバージョン: 10 
接続: UNIX ソケット経由のローカルホスト

問題を見つける

昨日、同僚が Linux 環境をコンパイルしてインストールするのを手伝っていたとき、次のような問題に遭遇しました。

Web サーバーは Apache、データベースは MySQL です。

そこで、データベースへの接続をテストするための PHP ページを作成しました。

ローカルホストに接続します。

テストするにはhttp://localhost/test.phpを開きます

ヒント: ソケット経由でローカル MySQL サーバーに接続できません...

環境が正常であることを確認する

データベースが起動していないと思ったのでプロセスを確認したところ、MySQLがプロセス中だったのでMySQLを再起動しました。

mysql -u root -pを使用してMySQL操作インターフェースに入ります

/usr/local/php5/bin/php /web/test.phpを直接使用して実行し、データベースに接続します。

Apacheを再起動しましたが、動作しませんでした。

質問: Web ページの実行は失敗したのに、コマンドの実行は成功したのはなぜですか?

これは非常にイライラします。PHP コマンドを使用して直接実行すると成功しますが、Web ページ経由で実行すると失敗します。それはApacheが原因でしょうか?オンラインで多くの情報を検索しましたが、解決策が見つかりませんでした。Apache を再コンパイルしてインストールした後も、問題は解決しません。

ローカルホストを 127.0.0.1 に変更しました

localhost を 127.0.0.1 に変更したら、接続は成功しました。私はジレンマに陥り始めました。なぜ localhost は失敗し、127.0.0.1 は成功したのでしょうか?

Ping ローカルホストのアドレスは 127.0.0.1 です

ホストを開いて参加する

127.0.0.1 qttc

qttc をホスト接続として使用するのは正常ですが、localhost は認識されません。

異なるローカルホスト接続方法により、

PHP がデータベースに接続するときに localhost と他のホストを入力することの違いを理解するために、私は多くの情報を読み、最終的に次のことを学びました。

ホストがlocalhostとして入力されている場合、MySQLはunix domain socket接続を使用します。

ホストが127.0.0.1と入力されている場合、MySQLはTCPを使用して接続します。

これは Linux ソケット ネットワークの機能です。Windows プラットフォームではこの問題は発生しません。

回避策

my.cnfの[mysql]セクションに追加します。

protocol=tcp

要約する

上記は、編集者が紹介した MySQL データベース ホスト 127.0.0.1 と localhost の違いです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策
  • MySQLがlocalhostを使用して接続できるがIPを使用して接続できない問題の解決策
  • mysql_connect localhost と 127.0.0.1 の違い (ネットワーク層の説明)
  • PHP で localhost を使用して Mysql への接続に失敗する問題を解決する方法
  • php mysql localhost、127.0.0.1 と IP の違い
  • 新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

<<:  Nginx のタイムドログカットの詳細な説明

>>:  Vue Element UIの使用時に遭遇した問題をまとめる

推薦する

zabbix を使用して ogg プロセスを監視する (Linux プラットフォーム)

以前作成されたデータベースの ogg プロセスは、発見されるまでの約半月間ダウンしていました。起動で...

Nodejs 組み込み暗号化モジュールを使用してピアツーピアの暗号化と復号化を実現する詳細な説明

暗号化と復号化は、通信のセキュリティを確保するための重要な手段です。すでに多くの暗号化アルゴリズムが...

Vue の計算プロパティとリスナーの使用の概要

1. 計算プロパティとリスナー1.1 計算プロパティ <!DOCTYPE html> &...

Presto をインストールし、Docker で Hive を接続する詳細なプロセス

1. はじめにPresto は、ギガバイトからペタバイトに及ぶデータ ソースに対してインタラクティブ...

JavaScriptのURLオブジェクトとは何かについて話しましょう

目次概要ハッシュプロパティホストプロパティホスト名属性Href属性起源のプロパティユーザー名とパスワ...

AWSサーバーリソースを無料で使用する方法を教えます

AWS - Amazon のクラウド コンピューティング サービス プラットフォーム以前、AWS の...

JavaScript配列についてさらに詳しく知るのに役立つ記事

目次1. 配列の役割: 2. 配列の定義: 1. コンストラクタを通じて配列を作成する2. リテラル...

Tomcatc3p0 で jnid データ ソースを構成する 2 つの実装方法の分析

c3p0の使用c3p0jarパッケージをインポートする <!-- https://mvnrep...

Nginx コンパイル済み nginx - 新しいモジュールを追加

1. 既存のモジュールを表示する nginx の sbin ディレクトリに nginx の sbin...

MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル (一般)

MySQLサービス8.0.14のインストール(一般)の参考までに、具体的な内容は次のとおりです。イ...

MySQL におけるデータベース間関連クエリメソッド

ビジネスシナリオ: 異なるデータベース内のテーブルをクエリするたとえば、関連付けられるテーブルは、マ...

Postman に基づく HTTP インターフェース テスト プロセスの分析

偶然、素晴らしい人工知能のチュートリアルを発見したので、みんなと共有せずにはいられませんでした。この...

XHTML言語のデフォルトCSSスタイル

html、アドレス、引用ブロック、本文、dd、div、 dl、dt、フィールドセット、フォーム、フレ...

Linux で一般的なソフトウェアを設定する方法

新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...

Vueでショッピングカートのすべての機能を実装する簡単な方法

主な機能は次のとおりです。製品情報を追加する製品情報を変更する単一の製品を削除する複数の製品を削除す...