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の使用時に遭遇した問題をまとめる

推薦する

CSS スティッキーフッターのいくつかの実装

「スティッキーフッター」とはいわゆる「スティッキー フッター」は、新しいフロントエンドの概念や技術で...

Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

序文システムをインストールしたときに、パーティション領域を適切に割り当てませんでした。その後のメンテ...

MySQLの通常インデックスとユニークインデックスの違いの詳しい説明

目次1 概念上の区別2 事例紹介3 クエリパフォーマンス4 アップデートのパフォーマンス4.1 記憶...

フレックスボックスレイアウトの最終行の左揃えの実装アイデア

フレックスレイアウトを使用すると、9つの正方形のグリッドであれば、図に示すように均等に分割できます。...

Kafka と Nginx の統合例

背景nginx-kafka-module は、Kafka を nginx に統合して、Web プロジ...

JS 正規マッチングの落とし穴の記録

最近、JS の正規表現マッチングの落とし穴を発見したのですが、その時はあまりにも奇妙だったので、何か...

Jenkins の Publish Over SSH プラグインを使用してプロジェクトをリモート マシンにデプロイする手順

SSH プラグインの使用による公開Publish Over SSH を使用する前に、SSH 秘密キー...

Tomcatの自動シャットダウンに関するバグ修正

序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...

Vue+express+Socketでチャット機能を実現

この記事では、チャット機能を実現するためのVue+express+Socketの具体的なコードを参考...

ビジネス HTML メール作成に関する提案

許可ベースの電子メール マーケティングにより、マーケティングとプロモーションのコストを大幅に削減でき...

この構成ファイルの排他ロックに失敗したという VMware 仮想マシンのプロンプトの解決方法

VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...

MySQL の分離レベルの包括的な分析

データベースが同じデータ バッチを同時に追加、削除、および変更すると、ダーティ書き込み、ダーティ読み...

VUE ユニアプリコア知識の簡単な紹介

目次仕様a. ページファイルはVueの単一ファイルコンポーネント仕様に準拠しています。 b. コンポ...

Vue echarts は棒グラフの動的な表示を実現します

この記事では、棒グラフの動的な表示を実現するためのvue echartsの具体的なコードを参考までに...