如何删除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语句,后面跟上你想删除的用户名称。