摘要:本教程向您展示如何列出 MySQL 数据库中的用户。
MySQL show users:列出所有用户
您是否在寻找 MySQL SHOW USERS
命令?不幸的是,MySQL 没有SHOW USERS
命令,如SHOW DATABASES
、 SHOW TABLES
等,因此要列出 MySQL 数据库服务器中的所有用户,您可以使用以下查询:
SELECT
user
FROM
mysql.user;
Code language: SQL (Structured Query Language) (sql)
在这条语句中,我们从mysql
数据库的user
表中查询了用户数据。
要执行此查询,您必须以管理员身份登录 MySQL 数据库服务器。
>mysql -u root -p
Enter password: ***********
mysql> use mysql;
Database changed
mysql> SELECT user FROM user;
Code language: SQL (Structured Query Language) (sql)
下面显示了上面查询的输出:
+-----------+
| user |
+-----------+
| mysql.sys |
| mysqlxsys |
| root |
+-----------+
3 rows in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
如您所见,我们的本地数据库中有三个用户。
要获取有关user
表的更多信息,您可以使用以下命令预览其列:
DESC user;
Code language: SQL (Structured Query Language) (sql)
例如,要显示用户和其他信息(例如主机、帐户锁定和密码过期状态),请使用以下查询:
SELECT
user,
host,
account_locked,
password_expired
FROM
user;
Code language: SQL (Structured Query Language) (sql)
这是查询的输出。
显示当前用户
要获取当前用户的信息,请使用user()
函数,如以下语句所示:
mysql> SELECT user();
+-----------------+
| user() |
+-----------------+
| local@localhost |
+-----------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
或者您使用current_user()
函数:
mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| local@localhost |
+----------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
在本例中,当前用户是local@localhost
。
显示当前登录的用户
要列出当前登录 MySQL 数据库服务器的所有用户,请执行以下语句:
SELECT
user,
host,
db,
command
FROM
information_schema.processlist;
+-------+-----------------+---------------+---------+
| user | host | db | command |
+-------+-----------------+---------------+---------+
| local | localhost:50591 | classicmodels | Sleep |
| root | localhost:50557 | NULL | Query |
+-------+-----------------+---------------+---------+
2 rows in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)
正如用户所看到的,当前有两个用户登录MySQL数据库,一个正在执行查询,另一个正在“睡眠”。
在本教程中,您学习了如何通过查询 mysql 数据库中的user
表中的数据来列出mysql
数据库服务器中的所有用户。
本教程有帮助吗?