如何删除 MySQL 用户帐户

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

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

本教程介绍如何删除 MySQL/MariaDB 用户帐户。

DROP USER 语句

在 MySQL 中,您可以使用该 DROP USER 语句删除一个或多个用户以及分配给他们的权限。该语句的一般语法如下:

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

例如,要删除 [email protected] 用户帐户,请登录到 MYSQL shell 并运行:

DROP USER 'brian[email protected]';

成功后,命令将返回:

Query OK, 0 rows affected (0.00 sec)

要在单个命令中删除多个用户帐户,请在 DROP USER 语句后以空格分隔要删除的用户:

如果您在未使用 IF EXISTS 子句的情况下尝试删除不存在的用户帐户,则该命令将返回错误。

如果您尝试删除的用户当前已登录,则不会关闭用户会话,并且用户将能够运行查询,直到会话结束。会话关闭后,用户将被删除,它将无法再登录 MySQL 服务器。

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

删除 MySQL 用户帐户

本节分步说明如何列出和删除 MySQL 用户帐户。

首先,使用 root 或其他管理用户登录 MySQL shell 。为此,请键入以下命令:

sudo mysql

如果您使用旧的 MySQL 本地身份验证插件以 root 身份登录,请运行以下命令并在出现提示时输入密码:

mysql -u root -p

以下命令的在 MySQL shell 中执行。

MySQL 在 mysql 数据库的 user 表中存储有关用户的信息。使用以下 SELECT 语句获取所有 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 中,用户帐户由用户名和主机名部分组成,并且 [email protected][email protected] 是不同的用户帐户。

假设不再需要用户帐户 [email protected] ,我们希望将其删除。

要删除用户运行:

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

该命令将删除用户帐户及其权限。

现在用户已被删除,您可能还想删除与该用户关联的数据库

结论

要删除 MySQL 用户帐户,请使用该 DROP USER 语句,后跟要删除的用户的名称。