祝十豆三生日快乐,另征集定时执行mysql数据库任务方案。

ACMAIN_CHM 2009-10-20 10:13:48
本月大事:
==================================================
十豆三...................生日 10-21
trainee (春泥)..........在大版 升星
nianzhang747 (飓风)....上月末入榜本月已升至67名
==================================================


另征集 如何定时执行数据库任务。

命题: 每日 02:00 am 定时删除 表 t (id int primary key,ptime TIMESTAMP DEFAULT CURRENT_TIMESTAMP) 中三天以前的记录。


先自己扔块砖头出来。

在WINDOWS 操作系统中 的计划任务中定时操作,
进入WINDOWS的命令行, (开始->运行-> 输入 cmd 回车

C:\>at 02:00 /every:M,T,W,Th,F,S,Su "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -p123 csdn -e "delete from t where ptime<date_sub(curdate(),interval 3 day)"
Added a new job with job ID = 1

C:\>at
Status ID Day Time Command Line
-------------------------------------------------------------------------------
1 Each Monday... 上午 02:00 "C:\Program Files\MySQL\MySQL
Server 5.1\bin\mysql.exe" -u root -p123 csdn -e "delete from t where ptime<date_
sub(curdate(),interval 3 day)"

C:\>

当然你可以直接利用widnows的控制面板中的计划任务管理图形操作界面来设置这个任务。 如果你用上述命令创建后,也可以到计划任务管理中找到这个AT的任务项。


...全文
2816 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoxingyu 2010-06-20
  • 打赏
  • 举报
回复
学习了,很深刻。
在WINDOWS下,我使用BAT文件来删除,然后定时执行这个BAT文件。

或者在事件里执行。
老哥讲数据库 2010-01-04
  • 打赏
  • 举报
回复
在这里祝楼主生日快乐
vinsonshen 2009-10-30
  • 打赏
  • 举报
回复
蛋糕应该都彻底消化掉了
揭贴吧

:)
qqwx_1986 2009-10-26
  • 打赏
  • 举报
回复
gx and study
百年树人 2009-10-24
  • 打赏
  • 举报
回复
我来补充一下linux的吧
1、创建backup.sh文件
#!/bin/sh

export MYSQLBAKDATE=`date +%Y%m%d`
# echo $MYSQLBAKDATE
export OUTFILE=$MYSQLBAKDATE'.TestDB.dbf'
# echo $OUTFILE
rm -f /bak/$OUTFILE
/usr/local/mysql/bin/mysqldump -uroot -p****** -R TestDB > /bak/$OUTFILE
gzip /bak/$OUTFILE

#END

如果考虑得再周全点,可以考虑删除一个星期或一个月之前的备份文件。

2、使用crontab -e命令编辑计划任务,加入以下一条记录

30 02 * * * sh /usr/local/mysql/backup.sh

表示在凌晨2点30分做备份
ACMAIN_CHM 2009-10-24
  • 打赏
  • 举报
回复
小结一下。


=======================================
方法一:操作系统
=======================================


(Windows)

在WINDOWS 操作系统中 的计划任务中定时操作,
进入WINDOWS的命令行, (开始->运行-> 输入 cmd 回车)

[code=BatchFile]C:\>at 02:00 /every:M,T,W,Th,F,S,Su "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -p123 csdn -e "delete from t where ptime <date_sub(curdate(),interval 3 day)"
Added a new job with job ID = 1

C:\>at
Status ID Day Time Command Line
-------------------------------------------------------------------------------
1 Each Monday... 上午 02:00 "C:\Program Files\MySQL\MySQL
Server 5.1\bin\mysql.exe" -u root -p123 csdn -e "delete from t where ptime <date_
sub(curdate(),interval 3 day)"

C:\>[/code]

(Linux/Unix)

暂缺...

=======================================
方法二:MySQL事件 Event
=======================================

MySQL 5.1.6 之后,你可以直接使用类似于oralce job的mysql event

首先,检查一下你的MYSQL是否打开了这项功能。

mysql> show variables like '%sc%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | OFF |
+-----------------+-------+
1 row in set (0.00 sec)


默认下是未打开的,你可以到 my.ini (windows)/ my.cnf (linux/unix) 参数文件中定义后重启mysqld
或者直接 set global event_scheduler=on;

mysql> show variables like '%sc%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
1 row in set (0.00 sec)


创建这个event
mysql> CREATE EVENT myevent
-> ON SCHEDULE EVERY 1 DAY STARTS '2009-10-24 02:00:00'
-> DO
-> delete from t where ptime <date_sub(curdate(),interval 3 day);
Query OK, 0 rows affected (0.09 sec)

mysql> show events;
+------+---------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+--
| Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | O
+------+---------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+--
| csdn | myevent | root@localhost | SYSTEM | RECURRING | NULL | 1 | DAY | 2009-10-24 02:00:00 | NULL | ENABLED |
+------+---------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+--
1 row in set (0.00 sec)

mysql>





关于EVENT的介绍(很遗憾,没有中文版的)

http://dev.mysql.com/doc/refman/5.1/en/events.html
19.4. Using the Event Scheduler
19.4.1. Event Scheduler Overview
19.4.2. Event Scheduler Configuration
19.4.3. Event Syntax
19.4.4. Event Metadata
19.4.5. Event Scheduler Status
19.4.6. The Event Scheduler and MySQL Privileges

关于create event 的语法和例子。
http://dev.mysql.com/doc/refman/5.1/en/create-event.html
12.1.11. CREATE EVENT Syntax
懒得去死 2009-10-23
  • 打赏
  • 举报
回复
现在只有三种方案,我所知道的。
1. MySQL 本身的JOB.
2. 操作系统的JOB.
3. 应用服务器自身的JOB.
daodaoyu222 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 apple_8180 的回复:]
trainee
nianzhang747
vinsonshen

等几位热心网友对本版的支持大家是有目共睹的,在此代表广大网友表示感谢!
也希望几位有时间的话来担当本版版主,那就更好了。
[/Quote]

确实确实
daodaoyu222 2009-10-22
  • 打赏
  • 举报
回复
哈哈,,定时更新。

用一个能更新数据库的软件。。

在软件里设置定在2点。。执行这条语句,,就OK了。

哈哈

菜鸟有菜鸟的招啊。
nianzhang747 2009-10-22
  • 打赏
  • 举报
回复
大家都谦虚啊 。。。
百年树人 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 apple_8180 的回复:]
trainee
nianzhang747
vinsonshen

等几位热心网友对本版的支持大家是有目共睹的,在此代表广大网友表示感谢!
也希望几位有时间的话来担当本版版主,那就更好了。
[/Quote]

支持!
十豆三 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 vinsonshen 的回复:]
引用 11 楼 apple_8180 的回复:
trainee
nianzhang747
vinsonshen

等几位热心网友对本版的支持大家是有目共睹的,在此代表广大网友表示感谢!
也希望几位有时间的话来担当本版版主,那就更好了。


其实,最近在这里跟大伙学到了不少东西。
我水平还很菜,还需继续努力,另外,时间是不固定的,所以,暂时就不耽误大家了。

[/Quote]

谦虚了。

有时间一定来申请版主吧。
十豆三 2009-10-21
  • 打赏
  • 举报
回复
trainee
nianzhang747
vinsonshen

等几位热心网友对本版的支持大家是有目共睹的,在此代表广大网友表示感谢!
也希望几位有时间的话来担当本版版主,那就更好了。
vinsonshen 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 apple_8180 的回复:]
trainee
nianzhang747
vinsonshen

等几位热心网友对本版的支持大家是有目共睹的,在此代表广大网友表示感谢!
也希望几位有时间的话来担当本版版主,那就更好了。
[/Quote]

其实,最近在这里跟大伙学到了不少东西。
我水平还很菜,还需继续努力,另外,时间是不固定的,所以,暂时就不耽误大家了。
vinsonshen 2009-10-21
  • 打赏
  • 举报
回复
今天才是真正的日子
再次“happpy birthday to apple_8180”
哈,我们的蛋糕呢,你不要都自己吃掉了哦
navy887 2009-10-21
  • 打赏
  • 举报
回复
祝贺。。

学习。。
十豆三 2009-10-21
  • 打赏
  • 举报
回复
多谢楼主及各位!
nianzhang747 2009-10-21
  • 打赏
  • 举报
回复
happpy birthday

楼上写错了

英文没学好啊
sciolist 2009-10-21
  • 打赏
  • 举报
回复
hapi bsday !!!!
nianzhang747 2009-10-20
  • 打赏
  • 举报
回复
可惜啊
我马上要转移了

不知道能在改版还能带多长时间

马上要去研究google技术了
加载更多回复(7)

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧