码迷,mamicode.com
首页 > 数据库 > 详细

Mysql事件

时间:2018-06-21 13:30:33      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:sql   启动   事件调度器   global   size   事件   off   ike   推出   

需求

由于公司的项目运营了五六年之久,数据量庞大,有的表已经达到了几百M,为了不影响查询效率,需要定期把一些日志老数据删除,公司负责人把之前的清理数据文档发来作为参考,发现了一些比较陌生的字眼,百度一看,原来是Mysql事件。

了解

熟悉linux系统的人都知道linux的cron计划任务,能很方便地实现定期运行指定命令的功能。其实Mysql事件就和Linux的cron功能一样,Mysql在5.1以后推出了事件调度器(Event Scheduler),能方便地实现 mysql数据库的计划任务,而且能精确到秒。

实践

Linux:Centos6.5,  Mysql:5.7.22

想要使用Mysql的事件功能,前提是确保服务开启,我这里是开启的。

MySQL [test]> show variables like event_scheduler;
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (1.76 sec)

如果没有开启,进入Mysql客户端,执行以下命令开启

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

当然也可以执行以下命令关闭

SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;

提醒:虽然这里用set global event_scheduler = on语句开启了事件,但是每次重启电脑。或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF),所以想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间,只需要在my.ini配置文件的[mysqld]部分加上event_scheduler=ON 即可,如下

编辑mysql的配置文件my.cnf,在[mysqld]中添加下面一行代码

[mysqld]
event_scheduler=ON

然后重启Mysql服务

# service mysqld restart --event_scheduler=ON  //通过制定事件参数启动

 

Mysql事件

标签:sql   启动   事件调度器   global   size   事件   off   ike   推出   

原文地址:https://www.cnblogs.com/wt645631686/p/9208245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!