--作者:飞翔的小胖猪

--创建时间:2021年2月26日

前言

mysql中设置定时任务,需要先打开调度才能实现自动执行任务。调度功能开启后过再配合存储过程或事件等组件实现特定或定时的任务实现。

步骤

1  开启事件调度功能,基于全局和配置文件。

2  编写相关需要执行的动作,可通过两种方式实现。

2.1  基于存储过程调用动作编写事件

2.2  直接使用事件自带的定时功能

一 、操作

1.1  开启调度

开启调度功能需要在当前数据库系统设置,并添加到配置文件中。调度开启后请再次使用命令查看确认调度是否开启。

  确认调度状态

-- 查询方法,任选其一即可。
mysql> SHOW VARIABLES LIKE 'event_scheduler';
mysql> SELECT @@event_scheduler;

  系统中开启

-- 设置方法(开启),以下命令任选其一。
mysql> SET @@global.event_scheduler = ON;
mysql> SET GLOBAL event_scheduler = ON;
mysql> SET GLOBAL event_scheduler = 1;
mysql> SET @@global.event_scheduler = 1;

-- 设置方法(关闭)
mysql> SET @@global.event_scheduler = OFF;
mysql> SET GLOBAL event_scheduler = OFF;
mysql> SET GLOBAL event_scheduler = 0;
mysql> SET @@global.event_scheduler = 0

  添加配置文件

在/etc/my.cnf文件中添加内容,注意需要添加到[mysqld]下。

[root@136-b ~]# cat /etc/my.cnf
[mysqld]
event_scheduler = 1

1.2  编写任务

基于存储过程

基于存储过程的方式需要先定义一个存储过程通过这个存储过程去调用其他的动作如事件。

DELIMITER $$

USE `database`$$
DROP PROCEDURE IF EXISTS `auto_del_90`$$
CREATE DEFINER=`root`@`%` PROCEDURE `auto_del_90`()
BEGIN
DELETE FROM basetb WHERE DATE(发生时间) <= DATE(DATE_SUB(NOW(),INTERVAL 90 DAY));
END$$ DELIMITER ;

直接使用事件

直接使用事件自带的事件计数器完成定时任务的执行操作,此时不需要设置存储过程。

DELIMITER $$
DROP EVENT IF EXISTS deleteLog;
CREATE EVENT deleteLog
ON SCHEDULE EVERY 60 SECOND
ON COMPLETION PRESERVE
DO BEGIN
delete from check_host_web_status where resource_id like 'app%' and inspection_date<=now()-interval 300 second;
END$$
DELIMITER ;

解释:

  第一行:设置结束符为 $$

  第二行:删除名为deteLog的事件,防止冲突。

  第三行:创建一个名为deleteLog的事件,名字区分大小写。

  第四行:设置事件的调度间隔事件单位有:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND

  第五行: 设置事件执行过后的动作,默认事件执行一次后会删除,周期性任务必须保存。参数:PRESERVE(保存)、NOT PRESERVE(不保存)

   第六行:动作开始行标识

  第七行:具体执行语句

  第八行:动作结束行标识

  第九行:设置语句结束符为 ; 

1.3  事件常见操作

查看事件

mysql > select db,name,interval_value,interval_field,last_executed,status,time_zone from mysql.event;

禁/启用事件

--禁用对应的事件
mysql> ALTER EVENT deleteLog DISABLE;
--启用对应的事件
mysql> ALTER EVENT deleteLog ENABLED;

删除事件

mysql>  DROP EVENT [IF EXISTS] event_name;

参考文档:http://c.biancheng.net/view/7703.html     https://www.cnblogs.com/qqhfeng/p/12532689.html

mysql设置定时任务-渐入佳境的更多相关文章

  1. mysql设置定时任务(对于中控心跳包的实现有意义)

    转载:https://www.cnblogs.com/laowu-blog/p/5073665.html 目前用途:因为 脚本正常开关会给中控发送消息 但是万一脚本被强制关闭 没有触发脚本关闭事件就无 ...

  2. mysql设置定时任务

    –查看时间调度器是否开启 SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; –开启时间调度器 SET GLOBAL ev ...

  3. Navicat for MySQL 设置定时任务(事件)

    1.查询界面输入命令,查看定时任务是否开启,未开始时OFF: show variables like '%event_scheduler%'; 2. 查询界面输入命令,开启定时任务: set glob ...

  4. 如何写mysql的定时任务

     什么是事件: 一组SQL集,用来执行定时任务,跟触发器很像,都是被动执行的,事件是因为时间到了触发执行,而触发器是因为某件事件(增删改)触发执行: 查看是否开启: show variables li ...

  5. Mysql编写定时任务事件

    原文:Mysql编写定时任务事件 场景: 例如:某系统,用户每天只能拥有一次的抽奖机会,抽过后当天就不可再抽,但是过了24:00点后用户就重新拥有一次抽奖机会.像这种需要数据库定时对某个字段进行更新操 ...

  6. MySQL job/定时任务/event 学习

    参考文章: https://blog.csdn.net/qq_21108311/article/details/82589850 https://blog.csdn.net/qq_27238185/a ...

  7. 为 MySQL 设置默认字符集(UTF-8)避免产生乱码

    环境:Windows 7+Wamp Server+MySQL 5.7.9 查看MySQL默认编码: SHOW VARIABLES LIKE 'character%' character_set_cli ...

  8. MySQL设置字符集为UTF8(Windows版)

    Windows版MySQL设置字符集全部为utf8的方式 MySQL安装目录下的my.ini文件 [client]节点 default-character-set=utf8    (增加) [mysq ...

  9. MySQL设置当前时间为默认值的方法

    方法一.是用alert table语句: 复制代码代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nul ...

随机推荐

  1. 机器学习-逻辑回归与SVM的联系与区别

    (搬运工) 逻辑回归(LR)与SVM的联系与区别 LR 和 SVM 都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题,如LR的Softmax回归用在深度学习的多分类 ...

  2. yum源 epel源 no package available 更换国内yum源

    有时候安装软件会出现 no package available 解决办法:yum install epel-release 安装完会在/etc/yum.repos.d/目录下下生成两个repo文件: ...

  3. HTTPS加密证书(1)

    目录 一:HTTPS 1.HTTPS简介 二:模拟网站劫持 1.正常的页面(web01) 2.文件增加权限 3.编写文件网址配置 4.网址测试 三:安装鲨鱼鳍(抓取数据包) 四:(网站劫持)lb代理 ...

  4. 网络分层和TCP三次握手

    它们就是 OSI 的七层模型,和 TCP/IP 的四层 / 五层模型.这两种模型的最大区别,就是前者在传输层和应用层之间,还有会话层和表示层,而后者没有. TCP三次握手: 位码即tcp标志位,有6种 ...

  5. Vue之JavaScript基础(闭包与原型链)

    闭包 定义:能够访问另一个函数作用域的变量的函数. 作用:可以通过闭包,设计私有变量及方法 实例: function outer() { var a = '变量1' var inner = funct ...

  6. IntelliJ IDEA 中文官方文档

    目录 认识IntelliJ IDEA IntelliJ IDEA 安装和设置 IntelliJ IDEA如何使用 IntelliJ IDEA中不容错过的快捷键 IntelliJ IDEA专业的使用技巧 ...

  7. NSInvocation的基本使用

    //封装invacation可以调用多个参数的方法 -(void)invacation { //1.创建一个MethodSignature,签名中保存了方法的名称,参数和返回值 //这个方法属于谁,那 ...

  8. js 用 void 0 替代 undefined

    underscore 源码没有出现 undefined,而用 void 0 代替之.为什么要这么做?我们可以从两部分解读,其一是 undefined 哪里不好了,你非得找个替代品?其二就是替代品为毛要 ...

  9. k8s实战之部署Prometheus+Grafana可视化监控告警平台

    写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...

  10. Java GUI 简单台球游戏模型

    完成效果: 1 package com.neuedu.test; 2 3 import java.awt.Frame; 4 import java.awt.Graphics; 5 import jav ...