MySQL root用户创建Event是否需要显式授予EVENT权限?
MySQL 8 root用户创建Event权限问题解答
- 核心结论:默认初始化的MySQL 8
root@localhost超级用户不需要显式授予EVENT权限
原因是MySQL安装完成后默认给本地root账户分配了ALL PRIVILEGES ON *.*的全局权限,该权限已经覆盖了所有库的EVENT操作权限,你提到的GRANT EVENT ON myschema.* TO root@localhost;语句属于冗余操作,执行也不会报错但完全没有必要。 - 需要手动授权的特殊场景:
如果你手动调整过root@localhost的权限,移除过EVENT相关授权,或是使用的是远程root账户(如root@%),默认没有分配全量权限的情况下,才需要单独执行EVENT权限授予操作。 - 权限验证方法:
执行如下命令查看当前root账户的权限即可确认:
只要返回结果中包含SHOW GRANTS FOR root@localhost;ALL PRIVILEGES ON *.*或是明确标注了EVENT权限,就无需额外操作。 - 额外注意事项:
即使权限足够,Event默认也可能无法正常工作,需要确认Event调度器处于开启状态:- 临时开启(重启服务后失效):执行
SET GLOBAL event_scheduler = ON; - 永久生效:在MySQL配置文件(my.cnf/my.ini)的[mysqld]节点下添加
event_scheduler = ON,重启MySQL服务后生效。
- 临时开启(重启服务后失效):执行
内容的提问来源于stack exchange,提问作者Jayant Kokitkar
相关产品推荐
相关产品推荐

