我正在使用MySQL命令行实用程序,可以在数据库中导航。现在我需要查看用户帐户列表。我该怎么做呢?

我使用的是MySQL 5.4.1版本。


当前回答

使用这个查询:

SELECT User FROM mysql.user;

它将输出一个这样的表:

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

正如Matthew Scharley在关于这个答案的评论中指出的那样,如果您只想看到唯一的用户名,您可以根据User列进行分组。

其他回答

我发现他的一个更有用,因为它提供了关于DML和DDL特权的额外信息

SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv, 
       Create_priv, Drop_priv, Shutdown_priv, Create_user_priv 
FROM mysql.user;

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

select User,Host from mysql.user;
$>  mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt

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

我用这个来对用户进行排序,所以允许的主机更容易被发现:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;

使用这个查询:

SELECT User FROM mysql.user;

它将输出一个这样的表:

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

正如Matthew Scharley在关于这个答案的评论中指出的那样,如果您只想看到唯一的用户名,您可以根据User列进行分组。