MySQL删除用户(DROP USER和DELETE)
在 MySQL 中,可以使用 DROP USER 语句删除用户,也可以使用 DELETE 语句删除用户。
删除上面创建的 li4 和 zhang3 用户,具体 SQL 语句如下所示:
查看用户信息,结果如下所示:
执行完 DELETE 语句后,需要执行 FLUSH 语句使删除操作生效,具体 SQL 语句如下所示:
例如,使用如下 SQL 语句删除用户名为 "wang5" 并且主机名为 "localhost" 的用户信息:
一般不推荐使用 DELETE 语句删除用户,因为系统会有残留信息。而使用 DROP USER 语句则会删除用户及其对应的权限,执行该语句后会发现 user 表和 db 表中相应的用户信息都消失了。
MySQL DROP USER语句删除用户
使用 DROP USER 语句删除用户时,必须拥有 DROP USER 权限。DROP USER 语句的语法如下所示:DROP USER user[,user]...;其中,user 表示需要删除的用户,由用户名(User)和主机名(Host)构成。DROP USER 语句可以同时删除多个用户,各用户之间用逗号分隔。
删除上面创建的 li4 和 zhang3 用户,具体 SQL 语句如下所示:
mysql> DROP USER li4; # 默认删除Host值为'%'的用户 mysql> DROP USER 'zhang3'@'localhost'; # 删除上面创建的用户
查看用户信息,结果如下所示:
mysql> SELECT Host,User FROM mysql.user; +-----------+------------------+ | Host | User | +-----------+------------------+ | % | root | | localhost | mysql.infoschema | | localhost | mysql.session | | localhost | mysql.sys | +-----------+------------------+可以看到,已经没有了 li4 和 zhang3 用户信息。
MySQL DELETE语句删除用户
使用 DELETE 语句可以直接将用户信息从 user 表中删除,但必须对 user 表拥有 DELETE 权限。DELETE 语句的语法如下所示:DELETE FROM mysql.user WHERE Host='hostname' AND User='username';因为 Host 字段和 User 字段是 user 表的联合主键,所以需要这两个字段的值才能唯一确定一条记录。
执行完 DELETE 语句后,需要执行 FLUSH 语句使删除操作生效,具体 SQL 语句如下所示:
mysql> FLUSH PRIVILEGES;
例如,使用如下 SQL 语句删除用户名为 "wang5" 并且主机名为 "localhost" 的用户信息:
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='wang5'; mysql> FLUSH PRIVILEGES;
一般不推荐使用 DELETE 语句删除用户,因为系统会有残留信息。而使用 DROP USER 语句则会删除用户及其对应的权限,执行该语句后会发现 user 表和 db 表中相应的用户信息都消失了。