文档章节

MySQL启动事件

唵嘛呢叭弥吽
 唵嘛呢叭弥吽
发布于 2017/08/16 11:54
字数 1013
阅读 5
收藏 0
点赞 0
评论 0
mysql启动事件
 
事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。
 
在使用这个功能之前必须确保event_scheduler已开启,可执行
SET GLOBAL event_scheduler = 1; 
或我们可以在配置my.ini文件 中加上 event_scheduler = 1或
SET GLOBAL event_scheduler = ON;
  www.2cto.com  
来开启,也可以直接在启动命令加上“–event_scheduler=1”,例如:
mysqld ... --event_scheduler=1
要查看当前是否已开启事件调度器,可执行如下SQL:
SHOW VARIABLES LIKE 'event_scheduler';
或
SELECT @@event_scheduler;
或
拥有 SUPER 权限的账户执行 SHOW PROCESSLIST 就可以看到这个线程了。
 
在使用事件这个功能,首先要保证你的mysql的版本是5.1以上,然后还要查看你的mysql服务器上的事件是否开启。
  www.2cto.com  
查看事件是否开启,使用如下命令查看:
 
SHOW VARIABLES LIKE 'event_scheduler';
 
SELECT @@event_scheduler;
 
SHOW PROCESSLIST;
 
如果看到event_scheduler为on或者PROCESSLIST中显示有event_scheduler的信息说明就已经开启了事件。如果显示为off或者在PROCESSLIST中查看不到event_scheduler的信息,那么就说明事件没有开启,我们需要开启它。
 
开启mysql的事件,通过如下三种方式开启:
 
Ø  通过动态参数修改
 
SET GLOBAL event_scheduler = ON;
 
更改完这个参数就立刻生效了
 
注意:还是要在my.cnf中添加event_scheduler=ON。因为如果没有添加的话,mysql重启事件又会回到原来的状态了。
 
Ø  更改配置文件然后重启
 
在my.cnf中的[mysqld]部分添加如下内容,然后重启mysql。
 
event_scheduler=ON
 
Ø  通过制定事件参数启动
  www.2cto.com  
mysqld ... --event_scheduler=ON
 
创建事件(CREATE EVENT)
先来看一下它的语法:
 
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
 
schedule:
AT TIMESTAMP [+ INTERVAL INTERVAL]
| EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
 
INTERVAL:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
            WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
            DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
 
1)首先来看一个简单的例子来演示每秒插入一条记录到数据表
 
USE test;
CREATE TABLE aaa (timeline TIMESTAMP);
CREATE EVENT e_test_insert
ON SCHEDULE EVERY 1 SECOND 
DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP);
等待3秒钟后,再执行查询成功。
 
2) 5天后清空test表:
  www.2cto.com  
CREATE EVENT e_test
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
3) 2007年7月20日12点整清空test表:
 
CREATE EVENT e_test
ON SCHEDULE AT TIMESTAMP '2007-07-20 12:00:00'
DO TRUNCATE TABLE test.aaa;
4) 每天定时清空test表:
 
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
DO TRUNCATE TABLE test.aaa;
5) 5天后开启每天定时清空test表:
 
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
6) 每天定时清空test表,5天后停止执行:
 
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
7) 5天后开启每天定时清空test表,一个月后停止执行:
 
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH
DO TRUNCATE TABLE test.aaa;
[ON COMPLETION [NOT] PRESERVE]可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。
8) 每天定时清空test表(只执行一次,任务完成后就终止该事件):
 
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
ON COMPLETION NOT PRESERVE
DO TRUNCATE TABLE test.aaa;
[ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。
[COMMENT ‘comment’]可以给该事件加上注释。
 
修改事件(ALTER EVENT)
ALTER EVENT event_name
[ON SCHEDULE schedule]
[RENAME TO new_event_name]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
[DO sql_statement]
1) 临时关闭事件
 
ALTER EVENT e_test DISABLE;
2) 开启事件
  www.2cto.com  
ALTER EVENT e_test ENABLE;
3) 将每天清空test表改为5天清空一次:
 
ALTER EVENT e_test
ON SCHEDULE EVERY 5 DAY;
 
删除事件(DROP EVENT)
语法很简单,如下所示:
 
DROP EVENT [IF EXISTS] event_name
例如删除前面创建的e_test事件
 
DROP EVENT e_test;
当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS
 
DROP EVENT IF EXISTS e_test;

 

本文转载自:http://www.2cto.com/database/201301/186385.html

共有 人打赏支持
唵嘛呢叭弥吽
粉丝 0
博文 7
码字总数 0
作品 0
杭州
Mysql的复制原理以及流程

Mysql的复制原理以及流程 MySQL复制概述 简单来说就是保证主服务器(Master)和从服务器(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的...

cooffeelis
01/09
0
0
mysql复制的工作原理及主从复制的实现

mysql的复制功能主要有3个步骤 主服务器将改变记录到二进制日志中,(这些记录叫做二进制日志事件) 从服务器将主服务器的二进制日志事件拷贝到它的中继日志中 从服务器重做中继日志中的事件...

雾中花1
2017/11/24
0
0
canal源码分析——parse模块源码分析

高层类图 首先,我们来看看该模块下面的类图,通过类图就可以清晰地掌握整个模块的骨架结构。 EventTransactionBuffer是事件事务缓存区。它主要是在内存中开辟一个缓冲区,避免过高的flush频...

杨武兵
2016/03/17
800
0
mysql主从复制实现(基于mysql5.5版本)

一,mysql主从复制原理介绍: mysql的复制是基于二进制日志实现的,二进制日志记录的是一切可能引起数据库发生改变的操作,因此,二进制日志对mysql十分重要,利用它可以实现数据库的即时点还...

Tyrant0532
2015/10/14
0
0
Windows安装MySQL相关问题整理。

1.安装MySQL时,与到不能不能正常启动的情况出现。 如图所示: 查看系统事件日志发现因缺少Microsoft Visual C++ 2008(运行库),经多次查找未能找到影响的库,在绝望之际,使用360软件进行查...

Bill_Xing
04/28
0
0
Mysql实现企业级数据库主从复制架构实战

一、数据库的主从复制 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将 Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的 某一台主机(Master)的数据复制到其它主...

931015
2017/11/22
0
0
MySQL的事件调度器使用介绍

MySQL的事件调度器使用介绍 自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,可以看作基于时间的触发器。 一、开启 事件调度默认...

开元中国2015
2015/06/25
66
0
Mysql实现企业级主从复制和互为主从模式架构

在实现mysql的多种模式前提下,首先先介绍一下mysql是如何工作的。 大概网络拓扑图如下: 1、该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记...

LUksl
06/26
0
0
Mysql Cluster集群配置详解

一. MySQL集群简介 MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。 MySQL群集需要有...

黎晨
06/06
0
0
基于zbus的MySQL透明代理(<100行)

项目地址 https://git.oschina.net/rushmore/zbus 我们上次讲到zbus网络通讯的核心API: Dispatcher -- 负责-NIO网络事件Selector引擎的管理,对Selector引擎负载均衡 IoAdaptor -- 网络事件...

少帮主
2015/09/29
5.1K
20

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java示例演示Functor 和monad

This article was initially an appendix in our Reactive Programming with RxJavabook. However introduction to monads, albeit very much related to reactive programming, didn't suit......

Quan全
17分钟前
0
0
微信官方jssdk Demo

1.html部分 <!DOCTYPE html><!-- saved from url=(0028){sh:$selfUrl} --><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"......

koloor
20分钟前
0
0
数据库命名规范

https://www.cnblogs.com/pangguoming/p/7126512.html 摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据...

塔塔米
20分钟前
0
0
java https 请求工具类-通用

package com.ra.common.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintW......

轻量级赤影
21分钟前
0
0
MFC界面套包BCG Pro Edition for MFC正式发布v27.3|附下载

BCGControlBar Professional Edition for MFC是MFC的一个扩展库,您可以用来构建类似于Microsoft Office 2000/XP/2003/2007/2010/2013 和 Microsoft Visual Studio-like(打印、用户定制工具......

Miss_Hello_World
21分钟前
0
0
Spring Cloud云服务 - HongHu架构common-service 项目构建过程

上一篇我们介绍了《整合spring cloud云服务架构 - HongHu云架构common-service代码结构分析》,本节我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来...

itcloud
22分钟前
0
0
Connection reset

在使用HttpClient调用后台resetful服务时,“Connection reset”是一个比较常见的问题,有同学跟我私信说被这个问题困扰很久了,今天就来分析下,希望能帮到大家。例如我们线上的网关日志就会...

夜黑人模糊灬
26分钟前
0
0
如何写PHP规范注释

所有的文档标记都是在每一行的 * 后面以@开头。如果在一段话的中间出来@的标记,这个标记将会被当做普通内容而被忽略掉。 @access 该标记用于指明关键字的存取权限:private、public或prote...

度_
27分钟前
0
0
influxDB Ppostgis

PostGis 1.需要安装postgreSQL,postgis作为插件嵌入到postgreSQL中; 2.使用zip包直接安装,需要修改 makepostgisdb_using_extensions.bat文件中的路径,用户名,密码,然后直接运行; 3.没有...

courtzjl
30分钟前
0
0
多线程Thread-多线程顺序执行

需求:现在有两个任务,任务1和任务2,任务1中有多个线程,并且任务2必须等任务1完成后才能执行。 namespace TThread{ class Program { static void Main(string[] ar...

kaixinguo314
34分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部