新しく作成された 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 プロジェクトを完了することについての簡単な説明

推薦する

CentOS7 での MySQL 8.0.16 のインストールと設定のチュートリアル

MySQLの古いバージョンをアンインストールします(古いバージョンがない場合は、この手順をスキップし...

継続的インテグレーションテストにおけるDocker Swarmの適用の詳細な説明

背景アジャイル モデルは広く使用されており、テストは特に重要です。新しいバージョンは頻繁にリリースす...

Linuxカーネルで中国語の文字を出力する方法

次のように、Windows/MacOS からログインした Linux の SSH ターミナルで簡単に...

React-Dropzone をベースにアップロードコンポーネント機能を開発する (サンプルデモ)

今回はReact-Flaskフレームワーク上でアップロードコンポーネントを開発するスキルについてお話...

h5入力ボックスプロンプト+通常のテキストボックスプロンプトを実装する方法

XML/HTML コードコンテンツをクリップボードにコピー<入力 id = "ユーザ...

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

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

なぜ Tomcat が起動できないのでしょうか?

目次現象:ポートの使用:ファイルにスペルミスがあります:現象: Tomcat がインストールされ、W...

フロントエンドコンポーネント化の基礎知識を詳しく解説

目次コンポーネントの基本概念オブジェクトとコンポーネントの違い成分属性属性とプロパティ属性:財産:ク...

MySQLインデックスの簡単な分析

データベース インデックスは、テーブル操作の速度を向上させることを目的としたデータ構造です。高速なラ...

MYSQLはUnionを使用して2つのテーブルのデータを結合し、表示します。

UNION演算子の使用union : 2 つ以上の SELECT ステートメントの結果を 1 つの...

ミニプログラムでマインドマップを描く方法

目次マインドマップとは何ですか? F6で描く方法アリペイ微信要約するマインドマップとは何ですか?マイ...

MySQLトリガーはPHPプロジェクトで情報のバックアップ、復元、クリアに使用されます。

例: PHP バックグラウンド コードを通じて、従業員情報を削除したり、削除した従業員情報を復元した...

Dockerはポートを介してコンテナに接続します

Dockerコンテナ接続1. ネットワークポートマッピングPythonアプリケーション用のコンテナを...

MySQL 5.7.17 インストール グラフィック チュートリアル (Windows)

最近データベースを学び始めたのですが、とても興味深いコースだと感じていますが、含まれる内容の多くは私...

Linux での rpm、yum、ソースコードの 3 つのインストール方法の詳細な紹介

第1章 ソースコードのインストールRPM パッケージは特定のシステムとプラットフォームに応じて指定さ...