linux设置mysql定时任务_Linux下如何实现Mysql定时任务
假设前提:每天晚上10点到早上5点,每10分钟定时执行存储过程。
实现方式:
第一种是利用mysql本身实现,制定event定时任务,可以借助navicat for mysql或其他数据库开发工具去做;
第二种实现方式是利用linux的定时任务,这个是利用linux系统自带任务管理工具实现的。
一、mysql中event定时任务的相关命令,
1.查看event是否启用:
select @@event_scheduler;
或
show variables like 'event%';
2.开启定时任务:
set global event_scheduler = 1;
或
set global event_scheduler = on;
3.建立定时任务:
drop event if exists job_alarm;
create event job_alarm
on schedule every 10 minute
do
begin
if(date_format(current_time(),'%h')>22 || date_format(current_time(),'%h')<5) then
call pro_alarm();
end if;
end
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
from (
select
e.user_id,
max(e.time_gmt) time_gmt
from events e
group by e.user_id
having max(e.time_gmt) < unix_timestamp() - 60 * 30
and max(e.time_gmt) > unix_timestamp() - 60 * 60 * 24) tmp
inner join events t on tmp.user_id = t.user_id
and tmp.time_gmt = t.time_gmt
where type_id != '34001';
#设置一个终止标记
declare continue handler for sqlstate '02000' set s = 1;
open cursor_data;
#获取游标当前指针的记录,读取一行数据并传给变量a,b
fetch cursor_data
into userid;
#开始循环,判断是否游标已经到达了最后作为循环条件
while s <> 1 do
insert into events_notification values (null, sysdate(), unix_timestamp(sysdate()),
unix_timestamp(sysdate()), '00000', userid, '1', '0');
#读取下一行的数据
fetch cursor_data
into userid;
end while;
#关闭游标
close cursor_data;
end;
二、利用linux的定时任务,
linux定时任务基本命令:
查看定时任务:crontab -l
编辑定时任务:crontab -e
*/10 22-23,0-5 * * * mysql -u用户名 -p密码 -e "use db_name;call pro_alarm();"
或者把use db_name;call pro_alarm();存到sql脚本中,编辑定时任务如下:
*/10 22-23,0-5 * * * mysql -u用户名 -p密码 < /application/job_mysql.sql
总结
以上所述是小编给大家介绍的linux下如何实现mysql定时任务,希望对大家有所帮助
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
linux设置mysql定时任务_Linux下如何实现Mysql定时任务相关推荐
- linux c mysql教程_linux下c操作mysql之增删改查
书接上文,继续进行linux 下c操作mysql. 1.创建表/插入数据 mysql> desc children -> ; +---------+-------------+------ ...
- linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置
This doucment is about how to add mysql driver into QT and about database connections 由于之前安装RedH ...
- linux中卸载mysql数据库_Linux下彻底卸载mysql数据库
linux下彻底卸载mysql 图解教程 1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql 可以看到如下图的所示: 说明之前安装了: MySQL-client-5.5. ...
- linux下如何启动mysql服务_linux下怎么启动mysql服务
2017-11-08 回答 权限问题.,copy份给你! 1.首先要运行一下 比如说我的mysql安装在/opt/mysql下面 #cd /opt/mysql #scripts/mysql_insta ...
- linux mysql移植_linux 下mysql 移植设置方法
环境: db01:10.10.10.101 db03:10.10.10.103 需求: 将db01上mysql做完整移植,迁移到db03 详细步骤: 1. 打包db01上/app目录并scp到db03 ...
- linux下mysql授权_linux下mysql命令(用户授权、数据导入导出)
1,linux下启动mysql的命令: 复制代码 代码示例: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2,linux下重启my ...
- linux 安装nginx php mysql 配置文件在哪_linux下 php+nginx+mysql安装配置
我主要是用来安装php,以及nginx和php的交互. 一 安装插件 可以选择YUM安装或者源码编译安装gccgcc-c++zlib pcre pcre-devel libevent libevent ...
- linux安装自带mysql吗_Linux下安装mysql
前提下必须要有这三个文件夹 A.jpg B.jpg 还要安装这两个软件:直接百度官网即可: 先通过Xftp6这个软件,编译文件夹, C.jpg 搭建mysql 1.查看CentOS自带的mysql r ...
- linux mysql安装_Linux下安装mysql服务(超详细)
Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的 ...
最新文章
- 解析列表中的数据python_将html数据解析成python列表进行操作
- NoSQL数据库之Redis数据库:Redis的介绍与安装部署(redis-2.8.19/3.2.5)
- mysql 查询近几天的数据
- python中MySQLdb的使用
- Cortex-M系列MCU最大亮点是低功耗
- myeclipse+git pull项目报错
- nodejs mysql事务处理_关于NodeJs如何使用Mysql模块实现事务处理实例
- linux成为管理员_成为系统管理员需要知道的
- 语音识别技术原理概述!
- JavaScript保留关键字及危险变量名
- 图像处理1 高斯模糊
- 第一章 为什么我们对机器学习感兴趣?(二)
- scheme语言编译成c语言,Scheme语言--简单介绍
- 英语口语笔记B1-Unit7.交通出行-04-Train travel in Europe
- Nginx缓存静态文件
- Spring Security简单SSO
- php获取蓝凑云文件列表,蓝奏云网盘登录获取文件例程
- 企业服务大爆发,HR SaaS的机会与挑战
- 单片机 LCD1602显示实验
- 计算机硬件系统中指挥控制计算机工作,计算机硬件系统中指挥、控制计算机工作的核心部件是________。...
热门文章
- php实现页面跳转的几种方法(实例分享)
- 用HTML做一个注册页面
- GPS/GNSS测试工具
- 2021计算机保研夏令营、预推免英语问答
- 小米手机无法读取图片路径的问题
- 操作系统--内存管理
- Android3d结构光,为什么3D结构光在安卓手机中没有取代指纹识别?
- 数据库连接数设置多少合适?
- Windos10双系统之Ubuntu
- mydock 怎么卸载_MyDock(桌面dock栏)下载_MyDock(桌面dock栏) 版本:v4.8.8.9官方版_魅蓝下载...