MySQL SHOW USERS: List All Users in a MySQL Database Server

摘要:本教程向您展示如何列出 MySQL 数据库中的用户。

MySQL show users:列出所有用户

您是否在寻找 MySQL SHOW USERS命令?不幸的是,MySQL 没有SHOW USERS命令,如SHOW DATABASESSHOW 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)

这是查询的输出。

MySQL SHOW USERS

显示当前用户

要获取当前用户的信息,请使用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数据库服务器中的所有用户。

本教程有帮助吗?