MySQL显示用户:列出MySQL数据库服务器中的所有用户

时间:2019-11-20 08:52:34  来源:igfitidea点击:

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

MySQL显示用户:列出所有用户

您在寻找MySQL SHOW USERS命令吗?不幸的是,MySQL没有SHOW DATABASES,SHOW TABLES等SHOW USERS命令,因此要列出MySQL数据库服务器中的所有用户,请使用以下查询:

SELECT 
   user 
FROM 
   mysql.user;

在此语句中,我们从mysql数据库的用户表中查询用户数据。

要执行此查询,您必须以管理员身份登录到MySQL数据库服务器。

>mysql -u root -p
Enter password: ***********
mysql> use mysql;
Database changed
mysql> SELECT user FROM user;

下面显示了上面查询的输出:

+-----------+
| user      |
+-----------+
| mysql.sys |
| mysqlxsys |
| root      |
+-----------+
3 rows in set (0.00 sec)

如您所见,本地数据库中有三个用户。

要获取有关用户表的更多信息,可以使用以下命令预览其列:

DESC user;

例如,要显示用户和其他信息,例如主机,帐户锁定和密码到期状态,请使用以下查询:

SELECT 
    user, 
    host, 
    account_locked, 
    password_expired
FROM
    user;

这是查询的输出。

显示当前用户

要获取有关当前用户的信息,请使用user()函数,如以下语句所示:

mysql> SELECT user();
+-----------------+
| user()          |
+-----------------+
| local@localhost |
+-----------------+
1 row in set (0.00 sec)

或者您使用current_user()函数:

mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| local@localhost |
+----------------+
1 row in set (0.00 sec)

在这种情况下,当前用户为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)

如使用所示,MySQL数据库中当前有两个用户登录,一个正在执行查询,另一个正在"睡眠"。

在本教程中,您学习了如何通过查询mysql数据库中的user表中的数据来列出MySQL数据库服务器中的所有用户。