【发布时间】:2011-04-19 05:47:46
【问题描述】:
我的机器上安装了 Win XP 操作系统和 XAMPP。
我需要在每个月的第一天凌晨 12:00:00 执行我的事件/调度程序。 表示每个月的 1 日。 (例如 1 月 1 日、2 月 1 日、3 月 1 日……)。
并且 我还需要在同一个事件中调用存储过程。 我只想使用 Event/Job 来实现这一切,而不是从前端。
请花几分钟时间询问我的问题。
【问题讨论】:
标签: mysql scheduled-tasks
我的机器上安装了 Win XP 操作系统和 XAMPP。
我需要在每个月的第一天凌晨 12:00:00 执行我的事件/调度程序。 表示每个月的 1 日。 (例如 1 月 1 日、2 月 1 日、3 月 1 日……)。
并且 我还需要在同一个事件中调用存储过程。 我只想使用 Event/Job 来实现这一切,而不是从前端。
请花几分钟时间询问我的问题。
【问题讨论】:
标签: mysql scheduled-tasks
MySQL 事件语法非常简单 -
DELIMITER $$
CREATE EVENT event1
ON SCHEDULE EVERY '1' MONTH
STARTS '2011-05-01 00:00:00'
DO
BEGIN
-- your code
END$$
DELIMITER ;
事件将在 '2011-05-01' '00:00:00' 开始工作(日期时间必须是未来)。
更多信息 - Using the Event Scheduler
别忘了开启全局事件调度线程-
SET GLOBAL event_scheduler = 1;
【讨论】:
db_name.event_name DISABLE;'。此外,您可以删除它 - 'DROP EVENT db_name.event_name;'。
假设您的 mysql 数据库位于 Web 服务器上,您可以设置一个在每个月的第一天运行的 cron 作业。您的服务器可能提供了一些 Web 界面来执行此操作。
如果您无法从服务器本身启动 cron 作业,可以使用免费的 Web 服务设置 cron 作业,在给定时间调用服务器上的脚本。
cron 作业调用的脚本可以是运行查询的简单 php 脚本。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_query(' /* insert query here */ ');
mysql_close($link);
您可能想要包含一些错误检查,或者向自己发送一封关于成功/失败的电子邮件,或者在日志文件中留下一些消息。这样您就可以监控脚本是否完全运行和/或成功运行。
【讨论】: