MySQL 删除用户

2026-02-09 15:38:57

MySQL 删除用户

❮ 上一页 下一页 ❯

MySQL 删除用户

简介:在本教程中,您将学习如何使用MySQL DROP USER语句删除用户帐户。

MySQL DROP USER语句简介

要删除一个或多个用户帐户,请使用以下DROP USER语句:

DROP USER user, [user],...;

要删除用户,请在DROP USER子句后面的格式中指定帐户名称'user_name'@'host_name'。如果要一次删除多个用户,请使用逗号分隔用户列表。

如果删除不存在的用户帐户,MySQL将发出错误。从MySQL 5.7.8开始,您可以使用IF EXISTS子句指示语句为每个不存在的用户帐户发出警告,而不是发出错误。

DROP USER [IF EXISTS] user, [user],...;

除了删除用户帐户外,DROP USER语句还会删除所有授权表中的所有权限。

删除用户帐户示例

要查看MySQL数据库服务器中的所有用户,请使用以下SELECT语句:

SELECT user, host FROM mysql.user;

这是我们的数据库服务器中的用户帐户列表:

+------------------+-----------+

| user | host |

+------------------+-----------+

| api@localhost | % |

| crm_dev | % |

| crm_read | % |

| crm_write | % |

| remote | % |

| rfc | % |

| root | % |

| superadmin | % |

| auditor | localhost |

| crm_dev1 | localhost |

| crm_read1 | localhost |

| crm_write1 | localhost |

| crm_write2 | localhost |

| dbadmin | localhost |

| mysql.infoschema | localhost |

| mysql.session | localhost |

| mysql.sys | localhost |

| super | localhost |

+------------------+-----------+

18 rows in set (0.07 sec)

假设您要删除用户帐户dbadmin@localhost,请使用以下语句:

DROP USER dbadmin@localhost;

mysql.user再次从表中查询数据,您将看到dbadmin@localhost已删除的数据。

SELECT user, host FROM mysql.user;

用户帐户dbadmin@localhost已被删除,如以下结果集所示:

+------------------+-----------+

| user | host |

+------------------+-----------+

| api@localhost | % |

| crm_dev | % |

| crm_read | % |

| crm_write | % |

| remote | % |

| rfc | % |

| root | % |

| superadmin | % |

| auditor | localhost |

| crm_dev1 | localhost |

| crm_read1 | localhost |

| crm_write1 | localhost |

| crm_write2 | localhost |

| mysql.infoschema | localhost |

| mysql.session | localhost |

| mysql.sys | localhost |

| super | localhost |

+------------------+-----------+

17 rows in set (0.06 sec)

要在单个语句中删除用户'api@localhost'@%和remote用户帐户DROP USER,请使用以下语句:

DROP USER 'api@localhost', remote;

让我们验证删除操作。

SELECT user, host FROM mysql.user;

我们还剩下四个帐户,这两个帐户已被删除。

+------------------+-----------+

| user | host |

+------------------+-----------+

| crm_dev | % |

| crm_read | % |

| crm_write | % |

| rfc | % |

| root | % |

| superadmin | % |

| auditor | localhost |

| crm_dev1 | localhost |

| crm_read1 | localhost |

| crm_write1 | localhost |

| crm_write2 | localhost |

| mysql.infoschema | localhost |

| mysql.session | localhost |

| mysql.sys | localhost |

| super | localhost |

+------------------+-----------+

15 rows in set (0.01 sec)

假设用户帐户已登录并且活动会话正在运行。如果删除用户帐户,则不会停止打开的会话。活动会话将继续,直到用户退出。通常,在这种情况下,您应在执行DROP USER语句之前立即关闭用户的会话。

首先,您需要使用SHOW PROCESSLIST语句来标识用户的进程ID 。

mysql> show processlist;

+----+-----------------+----------------------+-------+---------+---------+------------------------+------------------+

| Id | User | Host | db | Command | Time | State | Info |

+----+-----------------+----------------------+-------+---------+---------+------------------------+------------------+

| 66 | root | localhost:55402 | mysql | Query | 0 | starting | show processlist |

| 78 | dbadmin | localhost:63139 | NULL | Sleep | 115 | | NULL |

+----+-----------------+----------------------+-------+---------+---------+------------------------+------------------+

9 rows in set (0.01 sec)

如您所见,dbadmin@localhost用户帐户具有进程ID 78。

其次,你通过使用来杀死这个过程

KILL 78;

用户帐户dbadmin@localhost收到错误消息:

ERROR 2013 (HY000): Lost connection to MySQL server during query

第三,执行DROP USER语句删除用户帐户dbadmin@localhost:

DROP USER dbadmin@localhost;

请务必注意,如果不终止活动会话,则删除的用户(如果已连接到数据库服务器)仍可执行所有操作,直到会话结束。

在本教程中,您学习了如何使用MySQL DROP USER语句删除一个或多个用户帐户。

❮ 上一页 下一页 ❯

颜色选择器

常用工具

彩色渐变

JSON在线

时间戳转换

常用网站

SQL

EMOJI和符号

Read More »

ADVERTISEMENT

最新发表
友情链接

Copyright © 2022 流光追月·网游特刊 All Rights Reserved.