You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL报错#1227缺少SUPER权限 创建EVENT事件失败怎么解决?

错误原因

MySQL error #1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation

这个报错的核心触发逻辑如下:

  • 你创建EVENT的语句中显式指定了DEFINER子句,MySQL规定只有拥有SUPER权限的用户,才有权限指定与当前登录账号不一致的DEFINER。本地XAMPP环境你默认使用root账号操作,拥有全部权限所以不会报错,而线上环境的普通数据库账号普遍不开放SUPER权限,避免越权操作。
  • 部分云数据库服务商默认关闭了EVENT功能的普通用户使用权限,即便你权限配置正确,也需要先在控制台手动开启事件调度器相关权限才能创建事件。
解决方法

按优先级从高到低尝试以下方案即可:

  • 去掉语句中的DEFINER子句,创建时会默认使用当前登录账号作为DEFINER,不需要SUPER权限即可执行,修改后的语句如下:
CREATE EVENT `onlineoff` 
ON SCHEDULE EVERY 3 MINUTE 
STARTS '2021-11-06 13:19:59' ON COMPLETION NOT PRESERVE ENABLE 
DO UPDATE users set online='false';

执行前提是当前账号拥有对应数据库的EVENT权限,以及users表的UPDATE权限。

  • 执行上述语句依然报错的话,先检查当前账号的权限:
SHOW GRANTS FOR CURRENT_USER;

如果返回结果中没有EVENT相关权限,联系服务器管理员或云数据库服务商给当前账号开通EVENT权限即可。

  • 确认事件调度器已开启:
SHOW VARIABLES LIKE 'event_scheduler';

如果返回值为OFF,有权限的情况下执行SET GLOBAL event_scheduler = ON;开启,无全局权限的话到云数据库控制台的参数配置页面,将event_scheduler参数修改为ON后保存生效。

  • 始终无法开通EVENT权限的场景,可以用系统定时任务替代实现相同效果:Linux环境下配置crontab每3分钟执行一次UPDATE语句,Windows环境下配置计划任务即可。

内容的提问来源于stack exchange,提问作者Black-Hat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:09:04