Mysql5.7创建定时事件
一.首先介绍基本操作过程
1 前言
利用navicat工具来写存储过程及定时执行,此文章是按照自身经验总结的,仅作为记录使用。
2 步骤
2.1 新建过程
2.2 在函数体写你需要执行的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
2.3 创建一个事件
2.3.1 新建事件
2.3.2 定义需要调用的过程
2.3.3 填写你定时计划
代码预览如下:
1 2 3 4 |
|
3 异常
如果发现,你步骤都设置完了,还没有起作用,那可能是定时器开关没打开。
查看是否有开启,方法 show variables like 'event%';
如果是OFF,则用SET GLOBAL event_scheduler = 1;或者SET GLOBAL event_scheduler = ON;开启。开启后其Value则为ON。
以上转自:https://www.cnblogs.com/fanbi/p/9361204.html
二.定时事件的停止与开启
1、创建事件
DELIMITER $$
#创建一个定时分配订单的事件
CREATE event jobOrderSplit
#开启定时
ON SCHEDULE
#3分钟运行一次
EVERY 3 MINUTE
#每天的9点10时,3分钟分一次单
STARTS '2015-09-23 09:10:00'
DO
BEGIN
#调用自动分单的存储过程
CALL automaticSplitting();
END;
DELIMITER;
2、开启事件
#设置启动的全局变量
set global event_scheduler=1/ON;
#启动单独一个事件
ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
3、停止事件
#设置关闭的全局变量
set global event_scheduler=0/OFF;
#启动单独一个事件
ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
另:如果事件全部变量是关闭的,就算开启单独的事件也不会执行
查看mysql全局变量事件是否开启 ON:开 OFF:关
SHOW VARIABLES LIKE 'event_scheduler';
以上转自:https://www.iteye.com/blog/wangduorong-2300769
三.可能遇到的问题
定时事件event_scheduler的问题
1.查看事件是否开启
1-1.show variables like
'event_scheduler'
;
1-2.select @@event_scheduler;
1-3.show processlist;
如果event_scheduler=off 没有开启 on开启
1-4开启event_scheduler
set
global
event_scheduler =
'on'
;
//注意:还是要在my.cnf中添加event_scheduler=ON。否则mysql重启事件又会回到原来的状态了。
2.查看事件
select * from mysql.event
以上转自:
https://blog.****.net/w892824196/article/details/86622287