mysql定时任务navicat_Navicat书写Mysql定时任务

MySQL5.1.6起增加了事件调度器(Event Scheduler),可用来做定时执行某些特定任务,用于取代原先只能由操作系统的计划任务来执行的工作。MySQL的事件调度器可以精确到每秒执行一个任务,而操作系统的计划任务只能精确到分钟级别。对于对数据实时性要求比较高的应用非常合适。

事件调度器也称为临时触发器(Temporal Triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的。

MySQL定时任务的实现方式有两种:

使用MySQL的event定时任务

使用MySQL的事件计划,首先需要在服务器开启event_scheduler后才能处理。

使用Linux的定时任务crontab

如何开启事件计划呢?

SHOW VARIABLES LIKE 'event_scheduler';

+-----------------+-------+

| Variable_name | Value |

+-----------------+-------+

| event_scheduler | OFF |

+-----------------+-------+

1 row in set, 1 warning (0.00 sec)

开启的方式也分为两种,临时方式使用命令行或脚本操作,永久修改则需要修改MySQL主配置文件my.ini在其中添加event_schduler=1的配置后重启MySQL。

临时性修改只要不重启MySQL在当前运行状态下会直接生效,一旦重启后则失效。

mysql> SET GLOBAL event_scheduler = ON;

Query OK, 0 rows affected (0.00 sec)

mysql> SET @@global.event_scheduler = ON;

Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL event_scheduler = 1;

Query OK, 0 rows affected (0.00 sec)

mysql> SET @@global.event_scheduler = 1;

Query OK, 0 rows affected (0.00 sec)

要保证能够执行事件,就必须保证事件计划是开启状态,事件计划默认为关闭状态。检查状态

# 事件计划是否开启

$ SHOW VARIABLES LIKE 'event%'

$ SHOW VARIABLES LIKE 'event_scheduler';

+-----------------+-------+

| Variable_name | Value |

+-----------------+-------+

| event_scheduler | ON |

+-----------------+-------+

1 row in set

# 查看事件任务是否开启

$ SELECT @@event_scheduler;

+-------------------+

| @@event_scheduler |

+-------------------+

| ON |

+-------------------+

1 row in set

# 开启事件计划

$ SET GLOBAL event_scheduler=1

$ SET GLOBAL event_scheduler=ON

duler=1;

Query OK, 0 rows affected

# 关闭事件计划

$ SET GLOBAL event_scheduler=0

查看时间任务

# 查看事件任务

$ SHOW EVENTS;

Empty set

# 查看事件任务错误 - 权限不足

$ SELECT * FROM mysql.event

1142 - SELECT command denied to user 'username'@'127.0.0.1' for table 'event'

# 开启事件任务

$ ALTER EVENT event_name ON COMPLETION PRESERVE ENABLE

# 关闭事件任务

$ ALTER EVENT event_name ON COMPLETION PRESERVE DISABLE

# 删除事件

$ DROP EVENT [IF EXISTS] event_name

设置定时任务执行SQL语句

f42615c49630

微信截图_20201031103518.png

f42615c49630

微信截图_20201031103543.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值