MySQL显示用户:列出MySQL数据库中的所有用户
今天我们将指导您完成 如何在MySQL用户数据库中显示所有用户。
大多数初学者MySQL用户会问的一个常见问题是“如何查看MySQL服务器中的所有用户?” 他们中的大多数人假设有一个 显示用户 MySQL中的命令,但没有一个。 这是一个常见的错误,因为还有其他MySQL命令可显示有关数据库的信息。 例如, SHOW DATABASES
将向我们显示MySQL服务器中存在的所有数据库,并且 SHOW TABLES
将向我们显示您选择的MySQL数据库中的所有表。
人们通常认为应该有一个 SHOW USERS
MySQL中的命令。 即使没有特定的命令,也有几种方法可以实际查看用户列表,甚至可以过滤用户以查看所需的信息。 所有这些都可以通过MySQL命令行工具完成-让我们开始吧。
登录Linux服务器后,执行以下命令登录到MySQL命令行界面。
登录到您的MySQL服务器
使用以下命令以root用户身份登录到MySQL服务器:
mysql -u root -p
然后输入您的MySQL根密码。 默认情况下未设置它,因此您所需要做的就是按 [Enter] 如果您从未设置过该键。 但是,如果您设置了密码(无论是 mysql_secure_installation
脚本或其他内容),您现在应该输入该密码。
MySQL Show用户命令
我们只需要查询User表以使用以下命令显示所有MySQL用户:
SELECT User, Host, Password FROM mysql.user;
这 所有MySQL用户的列表 应该类似于以下内容:
+------------------+--------------+--------------+ | user | host | password | +------------------+--------------+--------------+ | root | localhost | 37as%#8123fs | | debian-test-user | localhost | HmBEqPjC5Y | | johnsm | localhost | | | brian | localhost | | | root | 111.111.111.1| | | guest | % | | | adrianr | 10.11.12.13 | RFsgY6aiVg | +------------------+--------------+--------------+ 7 rows in set (0.01 sec)
如果要添加更多列或排除某些列,只需使用所需列编辑命令。 您可能只需要用户名,因此可以使用 SELECT User FROM mysql.user;
查看所有用户的另一种方法是简单地使用星号
SELECT * FROM mysql.user;
从用户表中选择字段时使用通配符。 它看起来应该像这样: 这将返回 全部
每个用户可能的字段信息。 请注意,字段的数量通常很长/范围很广,因此输出可能无法读取,并且您可能不需要所有可用于每个用户的信息。 这就是为什么我们建议指定字段名称的原因,这样输出将易于阅读,并且您只会看到所需的信息。
一些字段与每个用户所拥有的特权和权限有关(例如“ Insert_priv”或“ Drop_priv”),而一些字段则与用户帐户的常规属性有关,例如“ max_connections”或“ max_updates”。
在mysql中显示用户
在某些情况下,选择用户表可能会产生重复的结果(例如,一个用户使用不同的主机,但用户具有相同的名称)–这会造成混乱,因此您可能只想显示唯一的用户名。 SELECT DISTINCT User FROM mysql.user;
如果您只想显示不会在更多行中重复的唯一用户名,则可以使用
+------------------+ | user | +------------------+ | root | | debian-test-user | | johnsm | | brian | | guest | | adrianr | +------------------+ 6 rows in set (0.01 sec)
,这应该为您提供以下输出:
没有重复的行,就像我们想要的那样。 这可以使您清楚地了解数据库服务器上存在哪些用户。
mysql显示用户
mysql> desc mysql.user;
正如我们在第2步中提到的,您可以使用许多字段来查看用户的特定属性。 使用此下一个命令,您将能够查看MySQL服务器支持的所有字段。 要查看mysql.user表中包含与该用户表相关的描述的所有字段,请运行以下MySQL命令以查询数据库。
mysql> desc mysql.user; +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Host | char(60) | NO | PRI | | | | User | char(16) | NO | PRI | | | | Password | char(41) | NO | | | | | Select_priv | enum('N','Y') | NO | | N | | | Insert_priv | enum('N','Y') | NO | | N | | | Update_priv | enum('N','Y') | NO | | N | | | Delete_priv | enum('N','Y') | NO | | N | | | Create_priv | enum('N','Y') | NO | | N | | | Drop_priv | enum('N','Y') | NO | | N | | | Reload_priv | enum('N','Y') | NO | | N | | | Shutdown_priv | enum('N','Y') | NO | | N | | | Process_priv | enum('N','Y') | NO | | N | | | File_priv | enum('N','Y') | NO | | N | | | Grant_priv | enum('N','Y') | NO | | N | | | References_priv | enum('N','Y') | NO | | N | | | Index_priv | enum('N','Y') | NO | | N | | | Alter_priv | enum('N','Y') | NO | | N | | | Show_db_priv | enum('N','Y') | NO | | N | | | Super_priv | enum('N','Y') | NO | | N | | | Create_tmp_table_priv | enum('N','Y') | NO | | N | | | Lock_tables_priv | enum('N','Y') | NO | | N | | | Execute_priv | enum('N','Y') | NO | | N | | | Repl_slave_priv | enum('N','Y') | NO | | N | | | Repl_client_priv | enum('N','Y') | NO | | N | | | Create_view_priv | enum('N','Y') | NO | | N | | | Show_view_priv | enum('N','Y') | NO | | N | | | Create_routine_priv | enum('N','Y') | NO | | N | | | Alter_routine_priv | enum('N','Y') | NO | | N | | | Create_user_priv | enum('N','Y') | NO | | N | | | Event_priv | enum('N','Y') | NO | | N | | | Trigger_priv | enum('N','Y') | NO | | N | | | Create_tablespace_priv | enum('N','Y') | NO | | N | | | ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | | | ssl_cipher | blob | NO | | NULL | | | x509_issuer | blob | NO | | NULL | | | x509_subject | blob | NO | | NULL | | | max_questions | int(11) unsigned | NO | | 0 | | | max_updates | int(11) unsigned | NO | | 0 | | | max_connections | int(11) unsigned | NO | | 0 | | | max_user_connections | int(11) unsigned | NO | | 0 | | | plugin | char(64) | YES | | mysql_native_password | | | authentication_string | text | YES | | NULL | | | password_expired | enum('N','Y') | NO | | N | | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ 43 rows in set (0.00 sec)
输出将类似于以下内容。 有很多选择!:
SELECT User, Update_priv FROM mysql.user;
您现在可以将其与步骤2中给出的示例结合起来。例如,如果要返回用户列表及其更新特权,则可以运行以下命令:
只需将“ Update_priv”替换为您可能需要的任何字段。
显示有关当前用户的信息
SELECT user();
您可以使用MySQL的内置功能来查看用于登录MySQL命令行的用户的名称和主机。 它是“ user()”函数,您只需选择它即可:
输出应为您提供有关运行查询的用户的信息。 就这样,在完成本教程之后,您已经了解到
在mysql中显示用户 如果您对MySQL数据库还有其他疑问,请随时在下面留下评论。 您总是可以从我们那里获得托管的MySQL VPS,而我们的完全托管支持将帮助您解决与MySQL相关的问题,或者将向您解释
如何显示MySQL数据库中的所有用户。
PS。 如果您喜欢“在MySQL中列出所有用户”上的这篇文章,请使用我们的共享快捷方式,通过社交媒体网络与您的朋友分享。 谢谢。