删除 MySQL 用户需要使用
DROP USER语句,这是最安全、最标准的方式。不能直接操作系统表(如
mysql.user),否则可能导致权限缓存不一致或用户残留。
确认目标用户是否存在
执行前先检查用户是否真实存在,避免误删或报错:
SELECT User, Host FROM mysql.user WHERE User = '用户名';
注意:MySQL 中用户由 用户名 + 主机名 共同唯一标识(例如
'testuser'@'localhost'和
'testuser'@'%'是两个不同用户)。
使用 DROP USER 删除用户
语法格式为:
DROP USER 'username'@'host';必须指定完整的
'user'@'host'格式,不能只写用户名 支持一次删除多个用户,用逗号分隔:
DROP USER 'u1'@'h1', 'u2'@'h2';该命令会自动回收该用户所有权限,并清理相关记录
刷新权限(通常不需要手动执行)
DROP USER会自动重载权限表,一般无需再运行
FLUSH PRIVILEGES;。仅在极少数异常情况下(如直接修改了系统表后)才需手动刷新。
常见错误与注意事项
ERROR 1396 (HY000):表示用户不存在,检查User和
Host是否拼写正确、大小写匹配(Linux 下区分大小写) 不要用
DELETE FROM mysql.user删除,这会导致权限系统状态不一致 删除用户前建议导出其权限(用
SHOW GRANTS FOR 'u'@'h';)以便审计或恢复 高版本 MySQL(8.0+)中,
DROP USER不再允许省略
@'host',必须显式指定
