Mysql事件
Posted 路漫漫其修远兮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql事件相关的知识,希望对你有一定的参考价值。
需求
由于公司的项目运营了五六年之久,数据量庞大,有的表已经达到了几百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事件的主要内容,如果未能解决你的问题,请参考以下文章