如果返回的是off表示当前是关闭状态,如果是on当前已经开启了计划任务。
在mysql程序的目录下找到my.ini文件,添加一个项:event_scheduler = 1
保存后重启mysql服务即可,重启服务可以在服务管理里面找到
也可以用脚本来实现:
mysql event_scheduler
开启event_scheduler sql指令:
SET GLOBAL event_scheduler = ON
SET @@global.event_scheduler = ON
SET GLOBAL event_scheduler = 1
SET @@global.event_scheduler = 1
相反,关闭event_scheduler指令:
SET GLOBAL event_scheduler = OFF
SET @@global.event_scheduler = OFF
SET GLOBAL event_scheduler = 0
SET @@global.event_scheduler = 0
1、启动Navicat for MySQL,新建数据库连接,打开数据库,可能有点啰嗦。
2、可以先查看定时任务的是否开启。通过以下命令:show variables like '%sche%'
3、如果其设置值为为 OFF 或 0 ,通过执行下列语句,来开启event_scheduler,set global event_scheduler =1,把设置为设为ON 或 1。
4、新建一个函数 ,取名为update_qiandao ,内容为 UPDATE week7_user SET isqiandao = 0
5、参照上图,新建一个事件 ,在定义里写 call update_qiandao() --也就是之前定义的函数
在“计划”选项卡中设置 执行时间,这里我选择的是每天。
6、完成结束
mysql如何查看定时器有没有执行1.查看是否开启evevt与开启evevt。
1.1、MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态,如果是OFF或者0,表示是关闭的。
show VARIABLES LIKE '%sche%'
1.2、开启evevt功能
SET GLOBAL event_scheduler = 1
2.创建定时器的过程
2.1、创建测试表test
drop table if exists test
create table test
(
id int(11) not null auto_increment primary key,
time datetime not null
) engine=innodb default charset=utf8
2.2、创建evevt要调用的存储过程test_proce
delimiter //
drop procedure if exists test_proce//
create procedure test_proce()
begin
insert into test(time) values(now())
end//
delimiter
2.3、开启evevt(要使定时起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1)
执行show variables like 'event_scheduler'查看evevt是否开启;
若没开启执行set global event_scheduler='on'
2.4、创建事件test_event(其作用:每隔一秒自动调用test_proce()存储过程)
drop event if exists test_event
create event test_event
on schedule every 1 second
on completion preserve disable
do call test_proce()
2.5、开启事件test_event
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)