1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > mysql启动时自动启动event事件

mysql启动时自动启动event事件

时间:2019-09-12 21:01:41

相关推荐

mysql启动时自动启动event事件

mysql定时执行-mysql event事件 12月07日 ⁄mysql基础语法 ⁄ 共 3221字 ⁄ 被围观 167 views+⁄ 发帖人: admin

分别有liunx,js,php 现在学习一个mysql的定时执行-event事件:

前言:

自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。

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

查看event是否开启

如果看到event_scheduler为on或者PROCESSLIST中显示有event_scheduler的信息说明就已经开启了事件。如果显示为off或者在PROCESSLIST中查看不到event_scheduler的信息,那么就说明事件没有开启,我们需要开启它。

开启event_scheduler

临时开启(mysql服务重启后之后失效)

永久开启

在f中的[mysqld]部分添加如下内容,然后重启mysql(mysql重启命令:service mysqld restart)

event_scheduler=ON

编译的时候开启

mysqld … –event_scheduler=ON

Mysql事件的语法简介

创建定时任务(CREATE EVENT)

参数详细说明:

DEFINER: 定义事件执行的时候检查权限的用户。

ON SCHEDULE schedule: 定义执行的时间和时间间隔。

ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。

AT 表示指定一个时间只执行一次。

EVERY 周期性计划,可指定计划开始时间 STARTS 和结束时间 ENDS,执行具体时间周期可以为:YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND。

COMPLETION 计划任务完毕后,该计划任务对象是否还在数据库中保留。默认不保留

ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。

COMMENT ‘comment’: 定义事件的注释。

修改计划任务(ALTER EVENT)

临时关闭事件

ALTER EVENT test_event DISABLE;

开启事件

ALTER EVENT test_event ENABLE;

删除计划任务(DROP EVENT)

DROP EVENT [IF EXISTS] event_name

如果产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS

实战演示:

其他例子:

实际应用场景:事件+存储过程

通常的应用场景是通过事件来定期的调用存储过程,下面是一个简单的示例:

创建一个让test表的id2字段每行加基数2的存储过程,存储过程代码如下:

事件设置-08-22 00:00:00时刻开始运行,每隔1调用一次存储过程,40天后结束,代码如下:

linux上默认这几个位置:/etc/f /etc/mysql/f /usr/etc/f~/.f

windows上是my.ini,my-default.ini一般是在你mysql的安装目录里面

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。