开发者

查询MySQL用户两种的最常用方法总结

开发者 https://www.devze.com 2025-12-24 08:59 出处:网络 作者: 青草地溪水旁
价值2999元 Java视频教程限时免费下载
专为Java开发者设计,涵盖核心技术、架构设计、性能优化等
立即下载
目录前言方法一:使用 mysql 命令行工具(最直接的方iLmFLbbpux法)1. 查询所有用户列表(核心方法)2. 获取更详细的用户信息3. 以更清晰的格式查看当前用户4. 查看当前登录的用户(会话信息)方法二:使用图形化界面
目录
  • 前言
  • 方法一:使用 mysql 命令行工具(最直接的方iLmFLbbpux法)
    • 1. 查询所有用户列表(核心方法)
    • 2. 获取更详细的用户信息
    • 3. 以更清晰的格式查看当前用户
    • 4. 查看当前登录的用户(会话信息)
  • 方法二:使用图形化界面工具(如 phpMyAdmin, MySQL Workbench)
    • 重要提示和最佳实践
      • 总结

        前言

        查询 MySQL 用户有多种方法,主要分为两大类:使用 MySQL 命令行工具使用图形化界面工具

        我将以最常用和权威的命令行方式为主进行详细说明。

        方法一:使用 MySQL 命令行工具(最直接的方法)

        首先,你需要使用一个具有足够权限的账户(如 root 用户)登录到 MySQL 服务器。

        mysql -u root -p
        

        然后php输入密码。

        1. 查询所有用户列表(核心方法)

        MySQL 将所有用户账户信息存储在默认数据库 mysqluser 表中。因此,直接查询该表即可。

        SELECT User, Host FROM mysql.user;
        

        解释:

        • SELECT User, Host: 选择显示用户名列主机名列
        • FROM mysql.user: 从 mysql 数据库的 user 表中查询。
        • 在 MySQL 中,一个用户的完整标识是 '用户名'@'主机名'。主机名指定了该用户可以从哪里连接到数据库(例如,'root'@'localhost''root'iLmFLbbpux;@'%' 是两个不同的用户)。

        执行结果示例:

        +------------------+-----------+
        | User             | Host      |
        +------------------+-----------+
        | mysql.infoschema | localhost |
        | mysql.session    | localhost |
        | mysql.sys        | localhost |
        | root             | localhost |
        | myapp_user       | %         |
        | readonly_user    | 192.168.1.% |
        +------------------+-----------+
        

        2. 获取更详细的用户信息

        你可以从 mysql.user 表中选择更多的列来获取用户的详细权限和设置。

        SELECT 
            User, 
            Host,
            account_locked,
            password_expired,
            authentication_string,
            Select_priv,
            Insertphp_priv,
            Update_priv,
            Delete_priv
        FROM mysql.user;
        

        解释:

        • account_locked: 账户是否被锁定(Y/N)。
        • password_expired: 密码是否过期(Y/N)。
        • authentication_string: 密码编程客栈的加密哈希值(在 MySQL 5.7.6+ 中,此列取代了 password 列)。
        • Select_priv, Insert_priv…: 这些列表示用户的全局权限(是否为 Y)。

        3. 以更清晰的格式查看当前用户

        如果你想查看当前登录的是哪个用户,可以使用以下函数:

        SELECT CURRENT_USER();
        

        输出示例:

        +----------------+
        | CURRENT_USER() |
        +----------------+
        | root@localhost |
        +----------------+
        

        4. 查看当前登录的用户(会话信息)

        这个方法显示的是你通过哪个用户认证进入当前会话的,与 CURRENT_USER() 结果一致。

        SELECT USER();
        -- 或者
        SELECT SYSTEM_USER();
        

        方法二:使用图形化界面工具(如 phpMyAdmin, MySQL Workbench)

        如果你使用图形化工具,操作会更简单直观。

        1. 登录到你的数据库管理工具。
        2. 在左侧的导航栏(对象浏览器)中,找到并点击 “用户和权限”“Users and Privileges”
        3. 点击后,工具会自动加载并显示一个所有用户的列表,通常会包含用户名、主机名以及一些基本权限信息。你可以点击具体的用户来查看和管理其详细权限。

        重要提示和最佳实践

        1. 权限要求: 执行 SELECT ... FROM mysql.user 需要 SELECT 权限。通常只有 root 用户或具有全局权限的管理员用户才有此权限。
        2. 安全警告mysql.user 表是系统核心表,不要直接使用 DELETE, UPDATE, INSERT 等语句修改它,除非你非常清楚自己在做什么。建议使用专门的 SQL 命令来管理用户,例如:
          • 创建用户: CREATE USER 'username'@'host' IDENTIFIED BY 'password';
          • 删除用户: DROP USER 'username'@'host';
          • 授予权限: GRANT ... ON ... TO 'username'@'host';
        3. 密码字段: 在 MySQL 5.7.6 及以上版本中,密码存储在 authentication_string 列。在老版本(如 5.6)中,可能仍然叫 Password 列。如果你在查询密码哈希值时发现列为空,可能是因为用户使用了 mysql_native_password 之外的认证插件(如 auth_socket)。

        总结

        对于绝大多数情况,你只需要记住并在 MySQL 命令行中执行这一条命令

        SELECT User, Host FROM mysql.user;
        

        这就能清晰地列出数据库中的所有用户及其允许连接的主机,这是进行用户管理和权限排查的第一步。

        到此这篇关于查询MySQL用户两种最常用方法的文章就介绍到这了,更多相关查询MySQL用户内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

        0
        价值2999元 Java视频教程限时免费下载
        专为Java开发者设计,涵盖核心技术、架构设计、性能优化等
        立即下载

        精彩评论

        暂无评论...
        验证码 换一张
        取 消