共計 7724 個字符,預計需要花費 20 分鐘才能閱讀完成。
這篇文章主要介紹“如何理解 MySQL 用戶中的百分號 % 是否包含 localhost”,在日常操作中,相信很多人在如何理解 MySQL 用戶中的百分號 % 是否包含 localhost 問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解 MySQL 用戶中的百分號 % 是否包含 localhost”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
1 前言
操作 MySQL 的時候發(fā)現(xiàn),有時只建了 % 的賬號,可以通過 localhost 連接,有時候卻不可以,網(wǎng)上搜索也找不到滿意的答案,干脆手動測試一波
2 兩種連接方法
這里說的兩種連接方法指是執(zhí)行 mysql 命令時,- h 參數(shù)填的是 localhost 還是 IP, 兩種連接方式的區(qū)別如下
-h 參數(shù)為 localhost
當 - h 參數(shù)為 localhost 的時候,實際上是使用 socket 連接的(默認連接方式), 實例如下
[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -hlocalhost
Enter password:
========= 省略 ===========
mysql status
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21, for linux-glibc2.12 (x86_64) using EditLine wrapper
Connection id: 9
Current database:
Current user: test_user@localhost
SSL: Not in use
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 5.7.21-log MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
從 Current user 可以看到用戶是 xx@localhost, 連接方式為 Localhost via UNIX socket
-h 參數(shù)為 IP
當 - h 參數(shù)為 IP 的時候,實際上是使用 TCP 連接的, 實例如下
[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -h227.0.0.1
Enter password:
========= 省略 ===========
mysql status
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21, for linux-glibc2.12 (x86_64) using EditLine wrapper
Connection id: 11
Current database:
Current user: test_user@127.0.0.1
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 5.7.21-log MySQL Community Server (GPL)
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
Server characterset: utf8
從 Current user 可以看到用戶是 xx@127.0.0.1, 連接方式為 TCP/IP
3 不同版本的差別
測試方法就是看能不能連接,如果不想看測試過程可以拉到最后看結(jié)論
3.1 MySQL 8.0 創(chuàng)建用戶
mysql select version();
+-----------+
| version() |
+-----------+
| 8.0.11 |
+-----------+
1 row in set (0.00 sec)
mysql create user test_user@ % identified by test_user
Query OK, 0 rows affected (0.07 sec)
使用 localhost 登錄
[root@mysql-test-72 ~]# /usr/local/mysql80/bin/mysql -utest_user -p -hlocalhost
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.11 MySQL Community Server - GPL
========= 省略 ===========
mysql status
--------------
/usr/local/mysql80/bin/mysql Ver 8.0.11 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
Connection id: 9
Current database:
Current user: test_user@localhost
SSL: Not in use
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 8.0.11 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
...
使用 IP 登錄
[root@mysql-test-72 ~]# /usr/local/mysql80/bin/mysql -utest_user -p -h227.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11 MySQL Community Server - GPL
========= 省略 ===========
mysql status
--------------
/usr/local/mysql80/bin/mysql Ver 8.0.11 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
Connection id: 8
Current database:
Current user: test_user@127.0.0.1
SSL: Cipher in use is DHE-RSA-AES128-GCM-SHA256
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 8.0.11 MySQL Community Server - GPL
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
結(jié)果顯示 8.0 版本的 MySQL, % 包括 localhost
3.2 MySQL 5.7 創(chuàng)建 % 用戶
db83-3306 create user test_user@ % identified by test_user
Query OK, 0 rows affected (0.00 sec)
使用 localhost 登錄
[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -hlocalhost
========= 省略 ===========
mysql status
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21, for linux-glibc2.12 (x86_64) using EditLine wrapper
Connection id: 9
Current database:
Current user: test_user@localhost
SSL: Not in use
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 5.7.21-log MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
....
使用 IP 登錄
[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -h227.0.0.1
Enter password:
========= 省略 ===========
mysql status
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21, for linux-glibc2.12 (x86_64) using EditLine wrapper
Connection id: 11
Current database:
Current user: test_user@127.0.0.1
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 5.7.21-log MySQL Community Server (GPL)
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
Server characterset: utf8
...
結(jié)果顯示 5.7 版本的 MySQL, % 包括 localhost
3.3 MySQL 5.6 創(chuàng)建用戶
db83-3306 select version();
+------------+
| version() |
+------------+
| 5.6.10-log |
+------------+
1 row in set (0.00 sec)
db83-3306 create user test_user@ % identified by test_user
Query OK, 0 rows affected (0.00 sec)
使用 localhost 登錄
[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -hlocalhost
Enter password:
ERROR 1045 (28000): Access denied for user test_user @ localhost (using password: YES)
使用 IP 登錄
[mysql@mysql-test-83 ~]$ /usr/local/mysql57/bin/mysql -utest_user -p -h227.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.10-log MySQL Community Server (GPL)
========= 省略 ===========
mysql status
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.21, for linux-glibc2.12 (x86_64) using EditLine wrapper
Connection id: 3
Current database:
Current user: test_user@127.0.0.1
SSL: Not in use
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 5.6.10-log MySQL Community Server (GPL)
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
......
--------------
結(jié)果顯示 MySQL 5.6 的 % 不包括 localhost
3.4 MySQL 5.1 創(chuàng)建用戶
mysql select version();
+-----------+
| version() |
+-----------+
| 5.1.73 |
+-----------+
1 row in set (0.00 sec)
mysql create user test_user@ % identified by test_user
Query OK, 0 rows affected (0.00 sec)
使用 localhost 登錄
[root@chengqm ~]# mysql -utest_user -p
Enter password:
ERROR 1045 (28000): Access denied for user test_user @ localhost (using password: YES)
使用 IP 登錄
[root@chengqm ~]# mysql -utest_user -p -h227.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4901339
Server version: 5.1.73 Source distribution
========= 省略 ===========
mysql status
--------------
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
Connection id: 4901339
Current database:
Current user: test_user@127.0.0.1
SSL: Not in use
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 5.1.73 Source distribution
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
結(jié)果顯示 5.1 版本的 % 不包括 localhost
3.5 MariaDB 10.3 創(chuàng)建用戶
db83-3306 select version();
+---------------------+
| version() |
+---------------------+
| 10.3.11-MariaDB-log |
+---------------------+
1 row in set (0.000 sec)
db83-3306 create user test_user@ % identified by test_user
Query OK, 0 rows affected (0.001 sec)
使用 localhost 登錄
[mysql@mysql-test-83 ~]$ /usr/local/mariadb/bin/mysql -utest_user -p -hlocalhost
Enter password:
ERROR 1045 (28000): Access denied for user test_user @ localhost (using password: YES)
使用 IP 登錄
[mysql@mysql-test-83 ~]$ /usr/local/mariadb/bin/mysql -utest_user -p -h227.0.0.1
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.3.11-MariaDB-log MariaDB Server
========= 省略 ===========
MariaDB [(none)] status
--------------
/usr/local/mariadb/bin/mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 12
Current database:
Current user: test_user@127.0.0.1
SSL: Not in use
Current pager: stdout
Using outfile:
Using delimiter: ;
Server: MariaDB
Server version: 10.3.11-MariaDB-log MariaDB Server
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
結(jié)果顯示 MariaDB 10.3 的 % 不包括 localhost
4 結(jié)論版本用戶中的 % 是否包括 localhostMySQL8.0 包括 MySQL5.7 包括 MySQL5.6 不包括 MySQL5.1 不包括 MariaDB 10.3 不包括
到此,關(guān)于“如何理解 MySQL 用戶中的百分號 % 是否包含 localhost”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>