开启时间调度器 mysql_实战MYSQL数据库中配置时间调度器(继定时操作)

在项目中经常会遇到历史数据删除备份的事情,最近参加的一个移动项目使用MYSQL做数据存储,用户正好提到类似的需求。

回想之前在网站上看到过MYSQL中可以支持配置时间调度器,使用这个MYSQL自带的功能来实现用户的要求真是再合适不过了。

需求如下:

px_***1 保存推送消息记录,用户要求每日定时删除5天前的.根据创建时间.

px_***2 记录管理员重要操作日志,用户要求每日定时删除60天前的 .根据创建时间.

px_***3 刷卡记录,删除1年以前的.根据创建时间

哈,使用MYSQL的时间调度器来实现这个需求,so easy!!!

按照惯例,搜索MYSQL时间调度器的相关资料,开工。。。。

链接数据库这些基本操作这里略过:

1.查看当前数据库是否启用当前调度事件:

SHOW VARIABLES LIKE 'event_scheduler';

event_scheduler ON  

2.如果没有开启,使用如下命令

SET GLOBAL event_scheduler = ON;3.创建对应额度时间调度事件

//删除5天前的

CREATE EVENT px_***1_delete ON SCHEDULE EVERY 1 DAY DO delete from px_pushmessage where create_time<= DATE_SUB(CURDATE(), INTERVAL 5 DAY);

//删除60天前的

CREATE EVENT px_***2_delete ON SCHEDULE EVERY 1 DAY DO delete from px_logs where create_time<= DATE_SUB(CURDATE(), INTERVAL 60 DAY);

//删除1年以前的

CREATE EVENT px_***3_delete ON SCHEDULE EVERY 1 DAY DO delete from px_doorrecord where dt<= DATE_SUB(CURDATE(), INTERVAL 1 YEAR);

4.查看当前已有的event调度

(1)查询mysql.event表;

(2)通过SHOW EVENTS命令;

5.临时关闭开启事件

1) 临时关闭事件

ALTER EVENT e_test DISABLE;

2) 开启事件

ALTER EVENT e_test ENABLE;

备注:如果开启调度命令时遇到权限问题,如:access denied for user 'root'@'%' to database 'pxdb'; 1044

开启对应用户的Event_priv 权限,使用flush privileges;刷新权限后重新登录即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值