1387

我正在使用 MySQL 命令行实用程序,并且可以浏览数据库。现在我需要查看用户帐户列表。我怎样才能做到这一点?

我正在使用 MySQL 5.4.1 版。

4

15 回答 15

1873

使用此查询:

SELECT User FROM mysql.user;

这将输出如下表格:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

正如 Matthew Scharley在对此答案的评论中指出的那样,User如果您只想查看唯一的用户名,则可以按列分组。

于 2009-07-16T03:26:37.250 回答
453

我发现这种格式最有用,因为它包含在 MySQL 中用于区分用户记录的主机字段。

select User,Host from mysql.user;
于 2012-07-06T18:21:58.353 回答
122

用户帐户包括用户名和主机级别访问权限。

因此,这是提供所有用户帐户的查询

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;
于 2013-09-29T22:29:11.160 回答
49

为避免用户从不同来源连接时重复:

select distinct User from mysql.user;
于 2013-09-29T22:01:52.887 回答
31

MySQL 将用户信息存储在自己的数据库中。数据库的名称是MySQL。在该数据库中,用户信息位于名为 的表、数据集中user。如果要查看 MySQL 用户表中设置了哪些用户,请运行以下命令:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+
于 2016-10-26T10:33:30.943 回答
30

如果您指的是实际的 MySQL 用户,请尝试:

select User from mysql.user;
于 2009-07-16T03:28:16.873 回答
23
SELECT * FROM mysql.user;

这是一张大表,因此您可能希望对选择的字段更有选择性。

于 2009-07-16T03:29:24.250 回答
18

以 root 身份登录 MySQL 并键入以下查询:

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+
于 2014-03-04T06:46:24.627 回答
15

mysql.db 表在确定用户权限时可能更重要。如果您在 GRANT 命令中提到一个表,我认为会在其中创建一个条目。在我的情况下,当 mysql.users 表显然能够连接和选择时,它没有显示用户的权限等。

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...
于 2014-12-27T20:09:52.827 回答
12

我使用它对用户进行排序,因此允许的主机更容易发现:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;
于 2016-11-02T19:01:33.813 回答
11

Peter 和 Jesse 是正确的,但请确保您首先选择“mysql”数据库。

use mysql;
select User from mysql.user;

那应该做你的伎俩。

于 2012-05-05T12:19:39.483 回答
11

这将显示唯一用户列表:

SELECT DISTINCT User FROM mysql.user;
于 2016-09-09T11:12:41.947 回答
5
$>  mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt

在 Linux 命令行提示符下执行此命令将首先询问 MySQL root 用户的密码。提供正确的密码后,它会将所有数据库用户打印到文本文件中。

于 2017-02-21T10:04:52.493 回答
3

我发现他的一个更有用,因为它提供了有关 DML 和 DDL 权限的附加信息

SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv, 
       Create_priv, Drop_priv, Shutdown_priv, Create_user_priv 
FROM mysql.user;
于 2017-08-28T23:10:52.270 回答
0
SELECT User FROM mysql.user;

使用上述查询获取 MySQL 用户。

于 2019-02-15T05:19:11.127 回答