你是否想获得MySQL服务器中所有用户的列表? 有显示数据库和表的命令(show databases 和 show tables ),但没有MySQL 中是没有 “show users” 命令。
本教程介绍如何通过命令行列出MySQL数据库服务器中的所有用户帐户。
开始之前
在开始本教程之前,我们假设您已经在系统上安装了MySQL或MariaDB服务器。 如果没有,您可以按照以下教程之一轻松安装它:
所有命令都将作为root用户在MySQL shell中执行。
要访问MySQL shell,请键入以下命令,并在出现提示时输入您的MySQL root用户密码:
mysql -u root -p
如果尚未为MySQL root用户设置密码,则可以省略-p开关。
如果您忘记了MySQL root密码,可以按照重置MySQL root密码教程重置。
显示MySQL 用户列表
MySQL将有关用户的信息存储在mysql数据库中名为user的表中。 要获取所有MySQL用户帐户的列表,我们可以使用SELECT语句并从mysql.users表中检索所有行:
SELECT User, Host FROM mysql.user;
输出应类似于以下内容:
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | localhost |
| luke | % |
| yoda | % |
| jabba | 10.10.0.6 |
| jabba | 10.10.0.9 |
| chewbacca | localhost |
| leia | localhost |
| han | localhost |
+------------------+-----------+
8 rows in set (0.00 sec)
上面的命令只显示了mysql.user表(用户和主机)中的两列,该表包含40多个列,如Password,Select_priv,Update_priv ......等。
你可以使用desc mysql.user; 用于显示每个表列的信息的语句。 知道列名称后,对选定数据运行查询。
例如,要获取所有MySQL用户帐户的列表,包括有关密码以及密码是活动还是已过期的信息,您可以使用以下查询:
SELECT User, Host, Password, password_expired FROM mysql.user;
输出类似如下:
+----------------+-----------+-------------------------------------------+------------------+
| User | Host | Password | password_expired |
+----------------+-----------+-------------------------------------------+------------------+
| root | localhost | | N |
| luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N |
| yoda | % | *9550E004046348198A143A115550E1262209FB6F | N |
| jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y |
| jabba | 10.10.0.9 | | Y |
| chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N |
| leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N |
| han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N |
+----------------+-----------+-------------------------------------------+------------------+
8 rows in set (0.00 sec)
写在最后
在本教程中,我们向您展示了如何通过从mysql数据库中的用户表中检索数据来获取所有MySQL用户帐户的列表。
如果您有任何疑问,请随时发表评论。