千家信息网

MYSQL中怎么定时清除备份数据

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章给大家介绍MYSQL中怎么定时清除备份数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mysql配置由于定时任务这个选项在mysql的默认配置是关闭的,所以保险起见,我
千家信息网最后更新 2025年01月22日MYSQL中怎么定时清除备份数据

这篇文章给大家介绍MYSQL中怎么定时清除备份数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

mysql配置

由于定时任务这个选项在mysql的默认配置是关闭的,所以保险起见,我们先查询一下该选项是否打开

show variables like '%event_scheduler%';

如果显示的为Off选项,有提供如下两种方式对其进行修改

1. 语句方式(当前启动的实例有效,重启后无效)

set global event_scheduler=1;

2. 配置my.cnf(windows下是my.ini)下添加如下选项

[mysqld]event_scheduler=ON


然后将其保存后重启mysql即可

3|2sql编写

创建存储过程(procedure)[可选:如果只是简单sql可以直接在定时任务中指定]

存储过程:存储过程,又称存储程序(英语:Stored Procedure),是在数据库存储复杂程序,以便外部程序调用的数据库对象,可以视为数据库的一种函数或子程序。

create PROCEDURE sched_clean() --命名BEGIN-- 定义参数DECLARE begin_time BIGINT DEFAULT UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE(),interval 31 DAY))*1000;DECLARE end_time BIGINT DEFAULT UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE(),interval 30 DAY))*1000;-- 更新数据UPDATE test_table SET rule_cost=null WHERE start_time>begin_time and start_time

创建定时任务

当创建好了存储过程后,我们就可以定时调用该存储过程了

CREATE EVENT `demo`.`day_of_clean_event`ON SCHEDULE EVERY '1' DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)ON completion preserve disableDO call sched_clean();

代码说明:

  • CREATE EVENT demo.day_of_clean_event在demo数据库中创建一个名为day_of_clean_event事件

  • 表示创建时间定时周期,以及开始时间,该处表示从明天1点从开始,每天执行一次该任务

  • 第三行表示创建后并不开始生效

  • 第四行表示需要执行的任务(这里你也可以直接编写sql语句)

相关查询

查询本机的所有事件

SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;

开启/关闭已经创建好的事件

alter event event_name on completion preserve enable;//开启定时任务alter event event_name on completion preserve disable;//关闭定时任务

4|0值得注意的地方

如果你的全局参数没有配置开启定时任务,则会导致你虽然执行了开启已经创建好的事件,但是你在information_schema.EVENTS表中还是查询不到记录

4|1常见的周期定时规则

① 周期执行 - 关键字 EVERY

单位有:second, minute, hour, day, week(周), quarter(季度), month, year,如:

on schedule every 1 second //每秒执行1次on schedule every 2 minute //每两分钟执行1次on schedule every 3 day //每3天执行1次

② 在具体某个时间执行 - 关键字 AT, 如:

on schedule at current_timestamp()+interval 5 day // 5天后执行on schedule at current_timestamp()+interval 10 minute // 10分钟后执行on schedule at '2016-10-01 21:50:00' // 在2016年10月1日,晚上9点50执行

③ 在某个时间段执行 - 关键字 STARTS ENDS, 如:

on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month // 5天后开始每天都执行执行到下个月底on schedule every 1 day ends current_timestamp()+interval 5 day //从现在起每天执行,执行5天

关于MYSQL中怎么定时清除备份数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

任务 数据 存储 过程 事件 数据库 时间 查询 配置 关键 关键字 周期 程序 建好 备份 内容 参数 天后 方式 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 工商银行软件开发吴纯顺 阿里云服务器怎样保证安全 saphana创建数据库视图 登录腾讯云轻量应用服务器 加快软件开发项目进度 北京中科三方网络技术公司 武汉国家网络安全孵化器 联想软件开发工程师校招面经 南昌县网络安全保卫大队队长 python 做服务器分享文件 国家网络安全法第33条 我国实行的是网络安全 手机版软件和电脑版软件开发 搭建信息系统软件开发 泰兴网络安全比赛2021 英语课程学习软件开发需要多少钱 日照游戏软件开发哪家好 网络安全被动防御的优缺点 全国的软件开发企业有多少家 ieee标准数据库 当前网络安全风险防范工作 中国第一次建立数据库 登录腾讯云轻量应用服务器 河南网络安全宣传周专题 中国台湾it软件开发制作 网信办信息化网络安全 ff14服务器人数 格家网络技术有限公司李潇 最适合python的数据库 图数据库技术丛书
0