MySQL撤销权限语法错误求助:CREATE USER后REVOKE语句报EOF错误
解决MySQL创建用户后撤销权限的语法错误问题
修正核心语法错误
你之前的REVOKE语句存在两处关键问题:- 错误使用
TO USER语法:REVOKE语句只能用FROM指定目标用户,不存在TO关键字 - 缺失必要关键字:部分MySQL版本要求
ALL后必须跟上PRIVILEGES,同时要显式撤销GRANT OPTION(避免用户保留授权他人的权限)
- 错误使用
正确的完整代码示例
针对创建用户并撤销所有权限的场景,标准写法如下:
-- 创建带主机限制的用户(localhost仅允许本地访问,%允许远程访问) CREATE USER IF NOT EXISTS 'your_user'@'localhost' IDENTIFIED BY 'your_password'; -- 撤销该用户所有全局权限及授权权限 REVOKE ALL PRIVILEGES, GRANT OPTION ON *.* FROM 'your_user'@'localhost';
- 关键细节说明
- 必须指定用户的主机部分:MySQL的用户是「用户名+主机」的组合,只写
your_user默认等价于your_user@'%',显式指定能避免权限混乱 - 用单引号包裹用户名和主机:避免因为特殊字符、关键字导致解析错误
- 权限不足的情况:执行这些语句需要当前账号拥有
CREATE USER和REVOKE权限,若报错先检查登录账号的权限 - 旧版本兼容:MySQL 5.x版本执行REVOKE后可能需要手动刷新权限:
FLUSH PRIVILEGES;,8.0及以上版本无需此操作
- 必须指定用户的主机部分:MySQL的用户是「用户名+主机」的组合,只写
内容的提问来源于stack exchange,提问作者Daleo dorito
相关产品推荐
相关产品推荐

