https://blog.csdn.net/qingzhong_he2010/article/details/44419845?utm_source=blogxgwz9
补充,第二种方法(用户级)
crontab -e
# m h dom mon dow command
20 1 * * * mysql -h127.0.0.1 -u root -ppassword </home/xxx.sql
sql内容:
use xxxdatabase;
call xxx_function();方法1缺点,服务器重启后需要重新设置
*系统的全局cron配置文件:(系统级)
vi /etc/crontab
mysql存储过程,定时调用两种方式
一、mysql存储过程,通过事件定时调用,要求mysql版本5.1以上
/*==============================================================*/
/* 定义存储过程,操作过期行为日志,要求mysql版本5.1及以上 */
/*==============================================================*/
/** 定义存储过程,删除行为日志*/
delimiter //
CREATE PROCEDURE delete_action_log (in date_inter integer)
BEGIN
DELETE from tbl_Log_action where TO_DAYS(SYSDATE()) - TO_DAYS(createDate) > date_inter;
END;
//
/** 查看event是否开启 */
show variables like '%sche%';
/** 将事件计划开启 set global event_scheduler=1;*/
set global event_scheduler = ON;
show variables like '%sche%';
/** 创建操作event事件,从2015-03-17凌晨2点50操作删除6天前日志,每日循环执行 */
CREATE EVENT if not exists e_delete_action_log
on schedule every 1 DAY STARTS '2015-03-17 02:50:00'
on completion preserve enable
do call delete_action_log(60);
二、linux命令crontab脚本调用
执行调用存储过程,删除30日前的所有日志,每日凌晨调用3点
crontab -e
0 3 * * * /my/xmol/bin/delActionLog.sh
脚本:delActionLog.sh
#!/bin/sh
# mysql -u 数据库用户名 -p数据库登录密码 某个库<<EOF
mysql -u myxmol -pmyxmol2101169 xmol<<EOF
call delete_action_log2(30);
EOF
定义存储过程:delete_action_log2,其中createDate为表日志时间
delimiter //
CREATE PROCEDURE delete_action_log2 (in date_inter integer)
BEGIN
DELETE from tbl_Log_action where TO_DAYS(SYSDATE()) - TO_DAYS(createDate) > date_inter;
END;
//
/** 显示全部存储过程*/
SHOW PROCEDURE STATUS;
/** 显示全部事件*/
show EVENTS;
/** 删除存储过程-指定库下执行*/
DROP PROCEDURE IF EXISTS delete_action_log;
/** 删除事件-指定库下执行*/
DROP EVENT IF EXISTS e_delete_action_log;
---------------------
作者:俊逸vs小宝
来源:CSDN
原文:https://blog.csdn.net/qingzhong_he2010/article/details/44419845
版权声明:本文为博主原创文章,转载请附上博文链接!