帮助中心
如何删除MySQL用户账户



MySQL允许你创建多个用户账户并授予适当的权限,以便用户可以连接和管理数据库。

如果不再需要用户账户,最好是删除用户权限或完全删除用户账户。

本教程解释了如何删除MySQL/MariaDB用户账户。

DROP USER语句


在MySQL中,你可以用DROP USER语句删除一个或多个用户和分配的权限。该语句的一般语法如下。

DROP USER [IF EXISTS] USER_ACCOUNT [, USER_ACCOUNT] ...

例如,要删除brian@localhost的用户账户,登录到MYSQL shell并运行:

DROP USER 'brian@localhost';

成功后,该命令将返回。

Query OK, 0 rows affected (0.00 sec)

要想在一条命令中删除多个用户账户,可以运行DROP USER语句,后面用空格分隔要删除的用户。

DROP USER 'brian@localhost' 'any@localhost';

如果你试图删除一个不存在的用户账户,并且没有使用IF EXISTS子句,该命令将返回一个错误。

如果你试图删除的用户目前正在登录,用户会话将不会被关闭,用户将能够运行查询,直到会话结束。一旦会话被关闭,用户就被删除,它将不再能够登录MySQL服务器。

该用户创建的数据库和对象不会被自动删除。

删除MySQL用户账户


本节逐步说明了如何列出和删除MySQL用户账户。

首先,用root或其他管理用户登录到MySQL外壳。要这样做,请键入以下命令。

$ sudo mysql

如果你使用旧的、原生的MySQL认证插件,以root身份登录,运行下面的命令,并在提示时输入密码。

$ mysql -u root -p

下面的命令是在MySQL外壳内执行的。

MySQL存储关于用户的信息,在mysql数据库的用户表中。使用下面的SELECT语句来获得所有MySQL用户账户的列表。

$mysql> SELECT User, Host FROM mysql.user;

输出结果应该是这样的。

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | localhost |
| luke             | %         |
| jabba            | localhost |
| jabba            | 10.10.8.8 |
| chewbacca        | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

在MySQL中,一个用户账户由用户名和主机名两部分组成。jabba@localhost和jabba@10.10.8.8 是不同的用户账户。
假设chewbacca@localhost的用户账户不再需要了,我们想删除它。

要删除该用户,请运行。

$ mysql> DROP USER 'chewbacca'@'localhost'
Query OK, 0 rows affected (0.00 sec)

该命令将删除该用户账户和它的权限。

现在用户被删除了,你可能也想删除与该用户相关的数据库。

结论


要删除一个MySQL用户账户,请使用DROP USER语句,后面跟上你想删除的用户名称。

文章相关标签: 删除MySQL用户
购物车