要印出所有MySQL中的所有用户,您是不是想使用MySQL SHOW USERS命令? 不幸的是,MySQL没有类似SHOW DATABASES,SHOW TABLES等那样的SHOW USERS命令,因此列出MySQL数据库服务器中的所有用户,可使用以下查询:
SELECT user FROMmysql.user;
在此语句中,我们从mysql数据库的user表查询用户数据信息。
要执行此查询,您必须以管理员身份登录到MySQL数据库服务器。
C:\Users\Administrator> mysql -u root-pEnter password: ***********mysql>use mysql;Database changedmysql>SELECT user FROM user;
以下显示了以上查询的输出:
mysql>USE mysqlDatabase changedmysql>SELECT user FROM user;+------------+| user |+------------+| rfc || superadmin || mysql.sys || root || super |+------------+5rowsinset (0.27 sec)
SELECT
user,
host,
account_locked,
password_expired
FROM
mysql.user;
mysql> SELECT
user,
host,
account_locked,
password_expired
FROM
mysql.user;
+------------+-----------+----------------+------------------+
| user | host | account_locked | password_expired |
+------------+-----------+----------------+------------------+
| root | localhost | N | N |
| mysql.sys | localhost | Y | N |
| superadmin | % | N | N |
| super | localhost | N | N |
| rfc | % | N | N |
+------------+-----------+----------------+------------------+
5 rows in set
mysql> SELECT user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set
mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set
SELECT
user,
host,
db,
command
FROM
information_schema.processlist;
mysql> SELECT
user,
host,
db,
command
FROM
information_schema.processlist;
+------+-----------------+----------+---------+
| user | host | db | command |
+------+-----------------+----------+---------+
| root | localhost:51897 | NULL | Sleep |
| root | localhost:51898 | yiibaidb | Sleep |
| root | localhost:55313 | NULL | Query |
| root | localhost:52939 | mysql | Sleep |
+------+-----------------+----------+---------+
4 rows in set