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

推薦する

mysql5.7.17 zip の解凍とインストールの詳細な手順

1. ダウンロードアドレスhttps://dev.mysql.com/downloads/mysql...

大規模なMySQLデータベース用のマスタースレーブシステムを構築するアイデアを共有する

今週は戦争のように忙しかったです。他人に操られているような気がします。毎日朝早く出勤して夜遅く帰り、...

MySQL INT型の完全な分析

序文: Integer は MySQL で最もよく使用されるフィールド型の 1 つで、通常は整数を格...

Dockerコンテナでアプリケーションサービスを自動的に起動する方法の例

コンテナの起動時に Docker コンテナ内のアプリケーション サービスを自動的に起動する場合。 D...

Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順

ジブの紹介Jib は Google が開発した、Java アプリケーションの Docker および ...

ボタンをクリックして画像を切り替える JavaScript

この記事の例では、ボタンをクリックすることで画像を切り替えることを実現するJavaScriptの具体...

HTMLノードの追加と削除の簡単な例

HTML ノードの追加と削除の簡単な例 HTML ノードの追加と削除の簡単な例<input t...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

トップに戻るボタンを実装するJavaScript

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...

例を通してMySQLの更新がテーブルをロックするかどうかを判定する

2つのケース: 1. 索引あり 2. 索引なし前提条件:方法: コマンドラインを使用してシミュレート...

sqlalchemy に基づいて MySQL で追加、削除、変更、クエリ操作を実装する

需要シナリオ:上司は、クロ​​ーラーを使用してMySQLデータベースにデータを書き込んだり更新したり...

CSSを使用して円形の波効果を実現する

モバイル デバイスでは、金額を表示するために円形の波グラフィックがよく使用されます。最初は、この効果...

MySQL接続がハングする理由の詳細な説明

目次1. 背景建築問題現象2. 分析プロセス接続プール不安に陥る雲を晴らして光を見よう3. 解決策I...

React 関数コンポーネントのパフォーマンス最適化のアイデアの詳細な説明

最適化のアイデア最適化には主に 2 つの方向があります。再レンダリングの回数を減らします。 Reac...

Vue+Openlayer をベースに geojson を動的に読み込む方法

1つ以上の機能をロードする <テンプレート> <div id="map&...