新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

通常の説明

%はどのクライアントでも接続できることを意味します
localhostはローカルコンピュータのみが接続できることを意味します

通常、ローカル データベースにアクセスできるユーザーには権限が与えられています。通常、他のマシンはローカル MySQL ポートへのアクセスを禁止されています。許可されている場合は、データベースにリモートからアクセスできないように、指定された IP アドレスを追加する必要があります。

1 はじめに

MySQL を操作する際に、アカウントの % のみを作成して localhost 経由で接続できる場合と、できない場合があることに気付きました。オンラインで検索しても満足のいく答えが見つからなかったので、手動でテストしてみました。

2 2つの接続方法

ここで言及する2つの接続方法は、mysqlコマンドを実行するときに-hパラメータにlocalhostまたはIPのどちらを入力するかを指します。2つの接続方法の違いは次のとおりです。

-hパラメータはlocalhostです
-hパラメータがlocalhostの場合、実際にはソケット接続(デフォルトの接続方法)が使用されます。例は次のとおりです。

[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -hlocalhost
パスワードを入力してください:
========= 省略 =============

mysql> ステータス
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21、EditLine ラッパーを使用した linux-glibc2.12 (x86_64) 用

接続ID: 9
現在のデータベース:
現在のユーザー: test_user@localhost
SSL: 使用されていません
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 5.7.21-log MySQL コミュニティサーバー (GPL)
プロトコルバージョン: 10
接続: UNIX ソケット経由のローカルホスト

現在のユーザーから、ユーザーはxx@localhostであり、接続方法はUNIXソケット経由のLocalhostであることがわかります。

-hパラメータはIP

-hパラメータがIPの場合、実際にはTCP接続が使用されます。例は次のとおりです。

[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -h127.0.0.1
パスワードを入力してください:
========= 省略 =============

mysql> ステータス
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21、EditLine ラッパーを使用した linux-glibc2.12 (x86_64) 用

接続ID: 11
現在のデータベース:
現在のユーザー: [email protected]
SSL: 使用されている暗号は DHE-RSA-AES256-SHA です
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 5.7.21-log MySQL コミュニティサーバー (GPL)
プロトコルバージョン: 10
接続: TCP/IP経由の127.0.0.1
サーバー文字セット: utf8

現在のユーザーから、ユーザーが[email protected]であり、接続方法がTCP/IPであることがわかります。

3 バージョンの違い

テスト方法は接続できるかどうかを確認することです。テストプロセスを見たくない場合は、最後までスクロールして結論を​​確認できます。

3.1 MySQL8.0

ユーザーを作成

mysql> バージョンを選択します();
+-----------+
| バージョン() |
+-----------+
| 8.0.11 |
+-----------+
セット内の 1 行 (0.00 秒)

mysql> 'test_user' によって識別されるユーザー test_user@'%' を作成します。
クエリは正常、影響を受けた行は 0 行 (0.07 秒)
ローカルホストを使用してログイン
[root@mysql-test-72 ~]# /usr/local/mysql80/bin/mysql -utest_user -p -hlocalhost
パスワードを入力してください:
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは9です
サーバーバージョン: 8.0.11 MySQL コミュニティサーバー - GPL
========= 省略 =============

mysql> ステータス
--------------
/usr/local/mysql80/bin/mysql バージョン 8.0.11 (x86_64 上の linux-glibc2.12 用) (MySQL コミュニティ サーバー - GPL)

接続ID: 9
現在のデータベース:
現在のユーザー: test_user@localhost
SSL: 使用されていません
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 8.0.11 MySQL コミュニティサーバー - GPL
プロトコルバージョン: 10
接続: UNIX ソケット経由のローカルホスト
...

IPを使用してログイン

[root@mysql-test-72 ~]# /usr/local/mysql80/bin/mysql -utest_user -p -h127.0.0.1
パスワードを入力してください:
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは8です
サーバーバージョン: 8.0.11 MySQL コミュニティサーバー - GPL
========= 省略 =============

mysql> ステータス
--------------
/usr/local/mysql80/bin/mysql バージョン 8.0.11 (x86_64 上の linux-glibc2.12 用) (MySQL コミュニティ サーバー - GPL)

接続ID: 8
現在のデータベース:
現在のユーザー: [email protected]
SSL: 使用されている暗号は DHE-RSA-AES128-GCM-SHA256 です
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 8.0.11 MySQL コミュニティサーバー - GPL
プロトコルバージョン: 10
接続: TCP/IP経由の127.0.0.1

結果にはMySQLバージョン8.0、localhostを含む%が表示されます

3.2 MySQL 5.7

% ユーザーを作成

db83-3306>>'test_user' によって識別されるユーザー test_user@'%' を作成します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

ローカルホストを使用してログイン

[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -hlocalhost
========= 省略 =============

mysql> ステータス
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21、EditLine ラッパーを使用した linux-glibc2.12 (x86_64) 用

接続ID: 9
現在のデータベース:
現在のユーザー: test_user@localhost
SSL: 使用されていません
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 5.7.21-log MySQL コミュニティサーバー (GPL)
プロトコルバージョン: 10
接続: UNIX ソケット経由のローカルホスト
....

IPを使用してログイン

[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -h127.0.0.1
パスワードを入力してください:
========= 省略 =============

mysql> ステータス
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21、EditLine ラッパーを使用した linux-glibc2.12 (x86_64) 用

接続ID: 11
現在のデータベース:
現在のユーザー: [email protected]
SSL: 使用されている暗号は DHE-RSA-AES256-SHA です
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 5.7.21-log MySQL コミュニティサーバー (GPL)
プロトコルバージョン: 10
接続: TCP/IP経由の127.0.0.1
サーバー文字セット: utf8
...

結果には、ローカルホストを含​​むMySQLバージョン5.7が表示されます。

3.3 MySQL5.6

ユーザーを作成

db83-3306>>バージョンを選択();
+------------+
| バージョン() |
+------------+
| 5.6.10-ログ |
+------------+
セット内の 1 行 (0.00 秒)

db83-3306>>'test_user' によって識別されるユーザー test_user@'%' を作成します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

ローカルホストを使用してログイン

[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -hlocalhost
パスワードを入力してください:
エラー 1045 (28000): ユーザー 'test_user'@'localhost' のアクセスが拒否されました (パスワード使用: YES)

IPを使用してログイン

[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -h127.0.0.1
パスワードを入力してください:
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは3です
サーバーバージョン: 5.6.10-log MySQL コミュニティサーバー (GPL)
========= 省略 =============

mysql> ステータス
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21、EditLine ラッパーを使用した linux-glibc2.12 (x86_64) 用

接続ID: 3
現在のデータベース:
現在のユーザー: [email protected]
SSL: 使用されていません
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 5.6.10-log MySQL コミュニティサーバー (GPL)
プロトコルバージョン: 10
接続: TCP/IP経由の127.0.0.1
......
--------------

結果は、MySQL 5.6の%にlocalhostが含まれていないことを示しています。

3.4 MySQL5.1

ユーザーを作成

mysql> バージョンを選択します();
+-----------+
| バージョン() |
+-----------+
| 5.1.73 |
+-----------+
セット内の 1 行 (0.00 秒)

mysql> 'test_user' によって識別されるユーザー test_user@'%' を作成します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

ローカルホストを使用してログイン

[root@chengqm ~]# mysql -utest_user -p
パスワードを入力してください:
エラー 1045 (28000): ユーザー 'test_user'@'localhost' のアクセスが拒否されました (パスワード使用: YES)
IPを使用してログイン
[root@chengqm ~]# mysql -utest_user -p -h127.0.0.1
パスワードを入力してください:
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは4901339です
サーバーバージョン: 5.1.73 ソース配布
========= 省略 =============

mysql> ステータス
--------------
mysql Ver 14.14 Distrib 5.1.73、readline 5.1 を使用する redhat-linux-gnu (x86_64) 用

接続ID: 4901339
現在のデータベース:
現在のユーザー: [email protected]
SSL: 使用されていません
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバーバージョン: 5.1.73 ソース配布
プロトコルバージョン: 10
接続: TCP/IP経由の127.0.0.1

結果は、%の5.1バージョンにはlocalhostが含まれていないことを示しています。

3.5 マリアDB10.3

ユーザーを作成

db83-3306>>バージョンを選択();
+---------------------+
| バージョン() |
+---------------------+
| 10.3.11-MariaDB ログ |
+---------------------+
セット内の 1 行 (0.000 秒)

db83-3306>>'test_user' によって識別されるユーザー test_user@'%' を作成します。
クエリは正常、影響を受けた行は 0 行 (0.001 秒)

ローカルホストを使用してログイン

[mysql@mysql-test-83 ~]$ /usr/local/mariadb/bin/mysql -utest_user -p -hlocalhost
パスワードを入力してください:
エラー 1045 (28000): ユーザー 'test_user'@'localhost' のアクセスが拒否されました (パスワード使用: YES)

IPを使用してログイン

[mysql@mysql-test-83 ~]$ /usr/local/mariadb/bin/mysql -utest_user -p -h127.0.0.1
パスワードを入力してください:
MariaDB モニターへようこそ。コマンドは ; または \g で終わります。
MariaDB接続IDは12です
サーバーバージョン: 10.3.11-MariaDB-log MariaDB サーバー
========= 省略 =============

MariaDB [(なし)]> ステータス
--------------
/usr/local/mariadb/bin/mysql Ver 15.1 Distrib 10.3.11-MariaDB、Linux (x86_64) 用、readline 5.1 使用

接続ID: 12
現在のデータベース:
現在のユーザー: [email protected]
SSL: 使用されていません
現在のページャ: stdout
出力ファイルの使用: ''
区切り文字の使用: ;
サーバー: MariaDB
サーバーバージョン: 10.3.11-MariaDB-log MariaDB サーバー
プロトコルバージョン: 10
接続: TCP/IP経由の127.0.0.1

結果は、MariaDB 10.3の%にlocalhostが含まれていないことを示しています。

4 結論

バージョンユーザーの % には localhost が含まれていますか?
MySQL 8.0含む
MySQL 5.7含む
MySQL 5.6含まれません
MySQL 5.1含まれません
マリアDB10.3含まれません

さて、今回の記事はこれで終わりです。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL ユーザーのホスト属性を素早く変更する方法
  • すべてのホストがmysqlにアクセスできるようにする方法
  • MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策
  • MySQLがlocalhostを使用して接続できるがIPを使用して接続できない問題の解決策
  • Mysqlがデータベースに接続するときのホストとユーザーのマッチングルールについての簡単な説明

<<:  nginx でクロスドメイン障害修復を構成する方法の例

>>:  Vue を使用してモバイル APK プロジェクトを完了することについての簡単な説明

推薦する

jsは赤い封筒の順序と量を指定するアルゴリズムを実装します

この記事では、指定された赤い封筒の順序と金額を実装するためのjsの具体的なコードを共有します。具体的...

PCとモバイルの適応の問題に対する迅速な解決策

Web ページを作成する場合、通常、コンピューターの画面サイズと携帯電話の画面サイズの違いなどの問題...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

Dockerイメージの圧縮と最適化操作

Docker が今日非常に人気がある理由は、主にその軽量性、迅速な展開、およびリソースの利用にありま...

nginx と keepalived を組み合わせて高可用性を実現するための手順を完了する

序文システムの高可用性を満たすためには、通常、クラスターを構築する必要があります。ホストがクラッシュ...

Debian 9 システムに MySQL データベースをインストールする方法

序文タイトルを見ると、誰もが「Debian 9 に MySQL をインストールするにはどうすればいい...

シーケンス関数を実装する MySQL コード

MySQLはシーケンス関数を実装する1. シーケンスレコードテーブルを作成する テーブル `sys_...

Js クラスの構築と継承のケースの詳細な説明

JS のクラスの定義や継承は本当に多様なので、別のノートブックを開いて記録しておきます。意味オブジェ...

JS 関数のアンチシェイクと関数スロットリングを理解する方法

目次概要1. 関数デバウンス2. 機能スロットリング(スロットル)概要関数アンチシェイクと関数スロッ...

Windows で MySQL サービスを停止または削除できない問題の解決策

圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...

MySQLデータベースインデックスの左端一致原則

目次1. 共同インデックスの説明2. ac はインデックスを使用できますか? 3. 考える4. 最左...

mysql での rpm インストールの詳細な説明

インストールとアンインストールの表示 # rpm -qa | grep mysql を表示 # アン...

jQueryは広告の表示と非表示のアニメーションを実装します

数秒後に広告が表示されて消えることがよくあります。この機能を実装するには、JQuery フレームワー...