Error number: MY-010803; Symbol: ER_EVENT_SCHEDULER_ERROR_GETTING_EVENT_OBJECT; SQLSTATE: HY000
Message: Event Scheduler: Error getting event object.
错误说明:
MY-010803,ER_EVENT_SCHEDULER_ERROR_GETTING_EVENT_OBJECT 它是MySQL一个关键级错误,当定时事件调度器(Event Scheduler)失败时,会抛出该错误。该错误的SQLSTATE值为HY000。
在MySQL中,SQLSTATE代码HY000指的是一个非常重要的错误,称为ER_EVENT_SCHEDULER_ERROR_GETTING_EVENT_OBJECT,通常情况下,该错误发生的主要原因有:
1. 定时事件调度表(events)已损坏;
2. events 表的 delete_filed 不是 int 类型;
3. 在 events 表中缺少一个有效的 SCHEDULER_STATE 字段;
4. 在 events 表中,循环引用已经冲突;
5. events 表在 events_stmts_current 视图中不可用;
6. Event Scheduler崩溃,导致events 表被破坏。
解决方法:
当ER_EVENT_SCHEDULER_ERROR_GETTING_EVENT_OBJECT 发生时,MySQL 无法找到触发器或存储过程调用,所以你需要检查 MySQL 运行时存在的异常情况,并执行以下操作:
1. 使用 SHOW EVENTS 语句检查定时任务是否正常工作;
2. 使用 SHOW PROCESSLIST 查看定时任务是否正在运行;
3. 使用 SHOW TABLE STATUS 来查看events表的完整性;
4. 使用 SHOW CREATE TABLE 检查 events 表的创建,确保 delete_field 字段已按照 int 类型定义;
5. 使用 SHOW INDEX 检查 events 表的视图是否存在循环引用;
6. 如果上述步骤都已完成,但还是没有解决问题,就需要重新创建 events 表(DROP TABLE events, then create table events…);
7. 尝试重新启动MySQL,检查 Event Scheduler 是否崩溃了,event scheduler启动失败,重启MySQL服务器来修复崩溃;
8. 最后,要确保定时任务均被调整为期望的格式;
9. 现在,启动 Event Scheduler,SET GLOBAL event_scheduler = 1。