如何获取MySQL用户帐户的列表

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

我正在使用MySQL版本5.4.1

使用这个查询:

 SELECT User FROM mysql.user; 

哪个会输出这样的表格:

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

正如Matthew Scharley 在评论中指出的那样,如果您只想看到唯一的用户名,您可以按User列进行分组。

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

 select User,Host from mysql.user; 

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

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

 SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user; 

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

 select distinct User from mysql.user; 

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

 select User from mysql.user; 
 SELECT * FROM mysql.user; 

这是一个很大的桌子,所以你可能想要更多地select你select的领域。

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 | | | % | +------------------+-----------+ 

以root身份login到mysql并input以下查询

 select User from mysql.user; +------+ | User | +------+ | amon | | root | | root | +------+ 

mysql.db表在确定用户权限时可能更重要。 我想如果你在GRANT命令中提到一个表格,就会创build一个条目。 在我的情况下,mysql.users表显示没有权限的用户,当它显然能够连接和select等

 mysql> select * from mysql.db; mysql> select * from db; +---------------+-----------------+--------+-------------+-------------+-------------+-------- | Host | Db | User | Select_priv | Insert_priv | Update_priv | Del... 

彼得和杰西是正确的,但只要确保你先selectMySQL数据库。

use mysql;

select User from mysql.user;

这应该做你的伎俩

我用这个sorting用户,所以允许的主机更容易被发现:

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

这里显示唯一用户列表。

 SELECT DISTINCT User FROM mysql.user; 
 $> mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt 

这个执行命令会在mysql中提示root用户的密码,然后将所有用户打印到文本文件中。

我发现他更有用。 它告诉你DML与DDL特权

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