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

推薦する

MySQL でスロークエリログ機能を有効にする方法

MySQL スロー クエリ ログは、問題のあるクエリを追跡するのに非常に役立ちます。現在のプログラム...

Dockerコンテナの起動失敗を解決する方法

質問: コンピュータを再起動した後、docker の mysql コンテナを再起動できません。原因が...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

パスワードログインなしでCentOS7にxshellリモートログインするアイデアを詳しく解説

まず、全体的な考え方についてお話しします。 1. パスワードを使用してCentOSシステムにログイン...

MySQL インデックスの一般的な問題の概要

Q1: データベースにはどのようなインデックスがありますか?メリットとデメリットは何ですか? 1. ...

ffmpeg コマンドラインを使用してビデオを変換するためのサンプルコード

この記事の本文を始める前に、まず ffmpeg プログラムをインストールする必要があります (Lin...

mysqldump を使用して MySQL データをバックアップする方法

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

チェックボックスとラジオボタンの配置を実装する方法

ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...

jsネイティブカルーセルプラグインの制作

この記事では、jsネイティブカルーセルプラグインの具体的なコードを参考までに共有します。具体的な内容...

MySQLはストアドプロシージャを使用して数百万のデータを素早く追加します。サンプルコード

序文インデックスを追加した場合と追加しなかった場合の違いを反映するには、数百万のデータを使用する必要...

ネイティブ JS でスネーク ゲームを書く

この記事では、参考までに、JSでスネークゲームを書くための具体的なコードを紹介します。具体的な内容は...

CentOS 7.2 は uniapp プロジェクトを展開するための nginx Web サーバーを構築します

Pantherは新人としてスタートし、今もまだ新人ですが、人々から学び、学んだことを時々皆さんと共有...

SSHパスワードフリーログイン設定方法の詳しい説明(画像とコマンド)

まず、私たちがやりたいことは、serverA の usera を使用して、パスワードなしで serv...

MySqlはページクエリ機能を実装します

まず、ページ分割クエリを使用する理由を明確にする必要があります。データが膨大なため、すべてのデータを...

HTML の基本概要推奨事項 (段落)

HTML段落段落は <p> タグによって定義されます。例<p>これは段落で...