本篇文章简单介绍如何在MySQL
中新建定时任务
新建定时任务主要分为以下几步:
修改MySQL配置
首先需要打开新建存储过程
和事件
的权限:
赋予用户创建、删改以及执行存储过程的权限
GRANT CREATE ROUTINE ON `user`.* TO 'username'@'%';
GRANT ALTER ROUTINE ON `user`.* TO 'username'@'%';
GRANT execute ON `user`.* TO 'username'@'%';
打开创建事件的配置:
SET GLOBAL event_scheduler = 1
新建存储过程
新建存储过程,这里peter
为数据库用户名,procedure_example
为存储过程名称
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `peter`.`procedure_example`()
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
select 'Hello, guys'
END$$
DELIMITER ;
新建事件
时间配置为从2018-05-22 03:00:00
开始,每天执行一次,也就是每天凌晨3点执行的意思
DELIMITER $$
-- SET GLOBAL event_scheduler = ON$$ -- required for event to execute but not create
CREATE /*[DEFINER = { user | CURRENT_USER }]*/ EVENT `datacenter`.`abc`
ON SCHEDULE EVERY 1 DAY STARTS '2018-05-22 03:00:00'
ON COMPLETION PRESERVE ENABLE
DO
CALL procedure_example();
DELIMITER ;