Linux下实现Mysql定时任务的案例

  介绍

小编给大家分享一下Linux下实现Mysql定时任务的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

假设前提:每天晚上10点到早5点上,每10分钟定时执行存储过程。

<强>实现方式:

第一种是利用Mysql本身实现,制定事件定时任务,可以借助Navicat Mysql或其他数据库开发工具去做;
第二种实现方式是利用Linux的定时任务,这个是利用Linux系统自带任务管理工具实现的。

<强>一、Mysql中事件定时任务的相关命令,

1。查看事件是否启用:

SELECT  @@event_scheduler;,   或   SHOW  VARIABLES  LIKE  & # 39;事件% & # 39;;

<强> 2。开启定时任务:

set  GLOBAL  event_scheduler =, 1,,   或   SET  GLOBAL  event_scheduler =,,

<强> 3。建立定时任务:

DROP  EVENT  IF  EXISTS  JOB_ALARM;   CREATE  EVENT  JOB_ALARM   ,提醒SCHEDULE  EVERY  10分钟   做   ,开始   如果才能(date_format(当前时间()& # 39;% h # 39;)在22日,| |,date_format(当前时间()& # 39;% h # 39;) & lt; 5),   ,,CALL  PRO_ALARM ();   最终获得才能;如果;   之前结束

<>强4。建立存储过程:

DROP  PROCEDURE  IF  EXISTS  PRO_ALARM;,   CREATE  PROCEDURE  PRO_ALARM (),   ,BEGIN    DECLARE 才能;userId  VARCHAR (32),,   #这才能个用于处理游标到达最后一行的情况,   DECLARE 才能s  INT  DEFAULT  0;,   #声才能明游标cursor_name (cursor_name是个多行结果集),   DECLARE 才能cursor_data  CURSOR  FOR    ,,SELECT  tmp.USER_ID    ,才能得到(,   ,,,,,,SELECT    ,,,,,,,e.USER_ID,,   ,,,,,,,马克斯(e.TIME_GMT), TIME_GMT    ,,,,,,得到EVENTS  e    ,,,,,,GROUP  BY  e.USER_ID    ,,,,,,HAVING 马克斯(e.TIME_GMT), & lt;, UNIX_TIMESTAMP(),安康;60,*,30,   ,,,,,,,,,以及MAX (e.TIME_GMT),祝辞,UNIX_TIMESTAMP(),安康;60,*,60,*,24),tmp    ,,,INNER  JOIN  EVENTS  t 提醒tmp.USER_ID =, t.USER_ID    ,,,,,,,,,,,,,,,,,,以及tmp.TIME_GMT =, t.TIME_GMT    ,,WHERE  TYPE_ID  !=, & # 39; 34001 & # 39;,,   #才能设置一个终止标记,   DECLARE 才能CONTINUE  HANDLER  FOR  SQLSTATE  & # 39; 02000 & # 39;, SET  s =, 1,,   cursor_data; OPEN 才能;   #才能获取游标当前指针的记录,读取一行数据并传给变量,b    FETCH 才能;cursor_data    ,,INTO 标识;   #才能开始循环,判断是否游标已经到达了最后作为循环条件,   WHILE 才能s  & lt;祝辞,1,DO    ,,INSERT  INTO  EVENTS_NOTIFICATION  VALUES  (NULL,, SYSDATE (),, UNIX_TIMESTAMP (SYSDATE ()),,   ,,,,,,,,,,,,,,,,,,,,,,,,,UNIX_TIMESTAMP (SYSDATE ()),, & # 39; 00000 & # 39;,, userId,, & # 39; 1 & # 39;,, & # 39; 0 & # 39;),,   ,,#读取下一行的数据,   ,,FETCH  cursor_data    ,,INTO  userId,   ,,最终获得;而;   #才能关闭游标,   cursor_data; CLOSE 才能;   ,结束;

<强>二,利用linux的定时任务,

linux定时任务基本命令:

查看定时任务:crontab - l
编辑定时任务:crontab - e

,,,,,,,*/10月22日至23日,0 - 5 * * *,,mysql - u用户名- p密码- e“使用db_name;叫PRO_ALARM ();“

,,,,,,或者把使用db_name;调用PRO_ALARM();存到sql脚本中,编辑定时任务如下:

,,,,,,*/10月22日至23日,0 - 5 * * *,,mysql - u用户名- p密码& lt;/应用程序/Job_mysql。sql

以上是“Linux下实现Mysql定时任务的案例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

Linux下实现Mysql定时任务的案例