Mysql定时任务配置详解
定时任务的配置
- 1、操作
- 2、详细讲解
这篇文章可以解决mysql的一些定时或是循环操作的工作。
1、操作
(1)、查看数据库定时策略是否开启
show variables like '%event_sche%';
运行结果
OFF表示没有开启,修改成ON(修改后查再看一次确保修改成功)
set global event_scheduler=1;
(2)、创建procedure(存储过程)
use demo;
delimiter //
create procedure demo_pro()
begin
-- (begin后end//前放要定时处理的sql用;结尾,可以放多个sql)
update app01_dnsinfo set sniff_time = DATE_ADD(NOW(), INTERVAL FLOOR(1 + (RAND() * 10800)) SECOND );
end//
delimiter ;
(3)、创建定时任务
-- 创建名为demo01的定时任务
create event demo01
-- 每天凌晨一点开始执行
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
on completion preserve disable
-- 任务使用demo_pro()作为执行体
do call demo_pro();
(4)查看任务建立情况并开启任务
查看任务是否创建完毕
SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;
开启和关闭任务
-- 开启和关闭创建好的事件
-- 开启定时任务
ALTER EVENT demo01 ON COMPLETION PRESERVE ENABLE;
-- 关闭定时任务
ALTER EVENT demo01 ON COMPLETION PRESERVE DISABLE;
删除定时任务
drop event demo01;
业务原sql(需求是每天更新表中时间为当天的随机时间)
-- 查看定时策略是否开启
show variables like '%event_sche%';
-- 开启定时策略(ON是开启状态)
set global event_scheduler=1;
-- 创建procedure(存储过程)
use 123;
delimiter //
create procedure updateTime()
begin
update demo_table set demo_time = DATE_ADD(NOW(), INTERVAL FLOOR(1 + (RAND() * 10800)) SECOND );
end//
delimiter ;
-- 创建定时任务
create event updateTime_LY
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
on completion preserve disable
do call updateTime();
-- 查看定时任务事件
SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;
-- 开启和关闭创建好的事件
alter event updateTime_LY on completion preserve enable;//开启定时任务
alter event updateTime_LY on completion preserve disable;//关闭定时任务
-- 删除
drop event updateTime_LY;
2、详细讲解
(1)event_scheduler的修改会随着数据库服务器重启恢复到原来状态,设置开机自动开启需要配置mysql的配置文件my.ini添加下面的一行配置
[mysqld]
event_scheduler=ON
(2)、procedure
delimiter // 这个的意思是将语句结尾的;修改为以//结尾,这样可以保证多条语句的完整执行,并且在结尾我们用delimiter ;把结尾字符修改回来了。
(3)、对于任务的执行方式再此追加几种时间控制
-- 单位有:SECOND,MINUTE,HOUR,DAY,WEEK(周),QUARTER(季度),MONTH,YEAR
-- 每秒执行1次
ON SCHEDULE EVERY 1 SECOND
-- 每两分钟执行1次
ON SCHEDULE EVERY 2 MINUTE
-- 每3天执行1次
ON SCHEDULE EVERY 3 DAY
-- 5天后执行
ON SCHEDULE AT CURRENT_TIMESTAMP()+INTERVAL 5 DAY
-- 10分钟后执行
ON SCHEDULE AT CURRENT_TIMESTAMP()+INTERVAL 10 MINUTE
-- 在2016年10月1日,晚上9点50执行
ON SCHEDULE AT '2021-12-01 1:50:00'
-- 5天后开始每天都执行执行到下个月底
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
-- 每天凌晨一点执行
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
-- 每个月的五号一点执行一次
ON SCHEDULE EVERY 5 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)
-- 每年一月一号凌晨三点执行一次
ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-',1)),INTERVAL 3 HOUR)
所触及的领域是星辰大海,初心就想问个为什么,不懂的越来越多,尽心为之吧。
Mysql定时任务配置详解相关推荐
- mysql数据 odbc_MySQL数据库之mysql odbc 配置详解、解决方案
本文主要向大家介绍了MySQL数据库之mysql odbc 配置详解.解决方案 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.安装mysql 以及mysql odbc 要注 ...
- mysql odbc_MySQL数据库之mysql odbc 配置详解、解决方案
本文主要向大家介绍了MySQL数据库之mysql odbc 配置详解.解决方案 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.安装mysql 以及mysql odbc 要注 ...
- mysql innodb 设置详解_【mysql】mysql innodb 配置详解
MySQLinnodb 配置详解 innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响.默认的设置只有8M,所以默认的数据库设置下面InnoD ...
- Mysql安装配置详解
Mysql安装 下载mysql-8.0.19-winx64.zip 安装 配置 1.环境变量 2.添加配置文件my.ini 3.cmd 修改密码 本文为安装配置部分 记录本人mysql安装过程出现的问 ...
- Linux—MySQL安装配置详解
1.MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码 ...
- mysql odbc 配置详解
1.安装mysql 以及mysql odbc 要注意自己的版本 版本都要统一(32位 或者64位) 2.出现的error 1989 126错误代码 Error 1918. Error installi ...
- Mysql.cnf配置详解
先附上自己的配置表 [mysqld] user=mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data character-set-s ...
- mysql-5.2 lib_Centos 5.2下安装多个mysql数据库配置详解
一.编译安装第一个MySQL 5.1.33 cd /opt /usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql -s /bin/nolo ...
- MySQL 数据库安装、完全卸载与配置详解和NavicatforMySQL下载及使用以及PyMySQL数据库的搭建
本文内容包括三大块: MySQL 数据库安装 MySQL 数据库完全卸载 MySQL 数据库配置详解 NavicatforMySQL下载及使用 PyMySQL数据库的搭建 大家可以按需提取内容,当然觉 ...
最新文章
- About Gnu Linker2
- ZigBee,ZStack
- 内核实现信号捕捉原理
- insert自动跳过存在数据_轻松入门mongo 数据库
- 更改一个视频文件夹下视频文件的文件名
- AndroidStudio Git 更改gitlab 地址
- php结束外部程序,PHP执行外部程序的方法
- 【机器学习-西瓜书】八、Bagging;随机森林(RF)
- 移动App 网络优化细节探讨
- (转)美国:2016-2045新科技趋势报告
- 视频教程-R语言绘图基础-其他
- Si24R1超低功耗高性能2.4G无线收发器芯片
- 前端性能优化实践:让视频加载也“懒”一点
- 洛谷 P1359 租用游艇(简单dp/Dijkstra)
- 帝国cms框架的Webshell
- python中base函数_详细的python basemap中各函数的所有参量注释
- 华宇(大连)笔试-20190620
- HashMap源码解析——构造方法
- 自定义一组基函数的最佳平方逼近——matlab实现
- oracle 秒转换分钟小时
热门文章
- Matlab 高光谱遥感数据处理与混合像元分解
- linux ftp 未找到命令,Linux不能使用FTP 命令 -bash: ftp: command not found
- AIX 开机自动运行程序
- 深入了解视觉语言模型
- 如何用webpack打包umd模块并测试打包结果
- 【整理】黄伟作品:10g OCP之007研究 and Oracle之RowID研究
- (五)算法与数据结构 | BFS和DFS
- 使用SQL4Automation让CodeSYS连接数据库
- matlab/simulink电力电子仿真直流电机设置和使用
- 2020年:maven配置最新阿里云镜像,以及在IDEA中的设置