重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
mysql如何查看定时器有没有执行
我们提供的服务有:网站建设、做网站、微信公众号开发、网站优化、网站认证、于田ssl等。为数千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的于田网站制作公司
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
只能说一下思路,你按照步骤去网上搜答案
一、新建事件每天调用存储过程
二、存储过程里面建表
1、获取当前时间,转换字符串
2、拼接sql语句建表
首先在sql中查询计划事件的状态:SHOW
VARIABLES
LIKE
'event_scheduler'
如果返回的是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;
在File - New Query Tab中通过以下SQL可以创建
create event my_event on schedule every 1 minute do select now();
workbench的schemas窗格中看不到event, 可以在窗口中查询information_schema.event看到已经创建的event
select * from information_schema.events;
如果已经知道event的名称的话, 也可以在窗口中适用show create event查看:
show create event my_event;
另外, 5.6的版本默认不打开调度器, 通过查询mysql全局变量看是否开启, 同样在workbench中执行
show variables like '%event_scheduler%';
如果看到关闭状态:
event_scheduler OFF
可以在workbench中直接执行
set global event_scheduler=1;
临时打开调度器(重启mysqld服务失效), 重启生效需要修改my.cnf配置, 在[mysqld]下打开
event_scheduler = 1
如果是event已经创建, scheduler也已经打开却没有效果, 可以在mysql的error log(在my.cnf中配置log-error项, 默认在mysql的data文件夹中)中查查是否有错误, 可能导致event没有按预期执行
CREATE EVENT [事件名]
ON SCHEDULE EVERY 7 WEEK STARTS
'2014-05-14 04:00:00'
ON COMPLETION PRESERVE
ENABLE
DO
[要执行的sql语句]