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

推薦する

MySQL 8.0 でリモートアクセス権限を設定する方法

前回の記事では、MySQL パスワードをリセットする方法を説明しました。一部の学生から、データベース...

ウェブサイトのコンテンツの一部を傍受するための iframe を実装するためのアイデアとコード

コードをコピーコードは次のとおりです。 <div スタイル="幅:630px;高さ:...

ウェブサイト制作におけるオンライン広告の新しいインタラクティブ体験(グラフィックチュートリアル)

インターネット時代が成熟するにつれて、オンライン広告の発展も加速しています。圧倒的な広告収入と完璧な...

HTML テーブル マークアップ チュートリアル (5): ライト ボーダー カラー属性 BORDERCOLORLIGHT

表では、左上の境界線の色を個別に定義したり、セルの右下の境界線の色を定義したりできます。これら 2 ...

数千万件のレコードをMySQLに素早く挿入する方法に関する実践的なチュートリアル

1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...

Webデザインの経験: Webコードを効率的に書く

本来、この第 7 章では、デザインにおけるレイヤーと空間テクニックについて深く議論するはずです。しか...

Vue を使用して Web ページのスクリーンショットを撮る方法をご存知ですか?

目次1. html2Canvasをインストールする2. 必要なVueコンポーネントを導入する3. ス...

mysql 8.0.18 mgr のインストールと切り替え機能

1. システムインストールパッケージ yum -y インストール make gcc-c++ cmak...

MySQLにインデックスを追加する方法

インデックスの簡単な紹介は次のとおりです。インデックスを追加する目的は、データベース クエリのパフォ...

個人的な意見: デザインについて語る

<br />最も実用的なものを選んで話しましょう。まず、勤務先の都市を慎重に選ぶ必要があ...

MYSQL ストアドプロシージャと関数の簡単な記述

ストアドプロシージャとは簡単に言えば、これは強力で、JAVA 言語のメソッドに似た比較的複雑な論理関...

HTMLのposition属性の使い方(4種類)の詳しい説明

位置の 4 つのプロパティ値は次のとおりです。 1.相対的な2.絶対3.修正4.静的これら 4 つの...

Linux システム MySQL8.0.19 クイックインストールと構成チュートリアル図

目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...

HBuilderX で Tomcat 外部サーバーを設定して、JSP インターフェイスを表示および編集する方法の詳細な説明

1. 最初の方法は、ローカルのTomcatを起動してJSPを表示することです。 tomcatのweb...

Spark RDD をデータフレームに変換し、それを MySQL に書き込む例

DataframeはSpark 1.3.0で導入された新しいAPIで、Sparkで大規模な構造化デー...