select @@event_scheduler;#檢視事件排程程式,如果是off,則執行下條語句
set global event_scheduler = on;#設定時間排程程式為on
#每天的2016-12-28 12:10:00 執行insert into test.aaa values (current_timestamp);
use test;
create table aaa (timeline timestamp); create event e_test
on schedule every 1 day starts 『2016-12-28 12:10:00『
do insert into test.aaa values (current_timestamp);
以上內容簡單的改改,就能滿足每天的任務排程,下面資料供參考。
●預設 event 支援是沒有啟動的,可以通過下面的命令來檢視狀態:
select @@event_scheduler;
如果返回 off ,則需要執行下面的命令啟動:
set global event_scheduler = on;
好了,上面雖然啟動了 event ,但是每次重啟 mysql 之後 event 並沒有自動啟動,那麼如何讓它自動啟動呢?
方法一:找到當前使用的 .cnf 檔案,在 [mysqld] 的下面加入如下行
event_scheduler=1
方法二:啟動 mysql 的時候增加 --event_scheduler=1
mysql start --event_scheduler=1
檢視事件
mysql> show events
mysql> show full events
mysql> select * from mysql.event;
mysql> select * from information_schema.events;
2> 修改事件 (alter event)
alter event event_name
[on schedule schedule]
[rename to new_event_name]
[on completion [not] preserve]
[comment 『『comment『『]
[enable | disable]
[do sql_statement]
1) 臨時關閉事件
alter event e_test disable;
2) 開啟事件
alter event e_test enable;
3) 將每天清空 test 表改為 5 天清空一次:
alter event e_test
on schedule every 5 day;
3> 刪除事件 (drop event)
語法很簡單,如下所示:
drop event [if exists] event_name
例如刪除前面建立的 e_test 事件
drop event e_test;
當然前提是這個事件存在,否則會產生 error 1513 (hy000): unknown event 錯誤,因此最好加上 if exists
drop event if exists e_test;
●先來看一下它的語法:
create event [if not exists] event_name
on schedule schedule
[on completion [not] preserve]
[enable | disable]
[comment 『『comment『『]
do sql_statement;
schedule:
at timestamp [+ interval interval]
| every interval [starts timestamp] [ends timestamp]
interval:
quantity
●先來看乙個簡單的例子來演示每秒插入一條記錄到資料表
use test;
create table aaa (timeline timestamp);
create event e_test_insert
on schedule every 1 second
do insert into test.aaa values (current_timestamp);
等待 3 秒鐘後,再執行查詢看看:
mysql> select * from aaa;
●再建立2007 年 7 月 20 日 12 點整清空 test 表:
create event e_test
on schedule at timestamp 『『2007-07-20 12:00:00『『
do truncate table test.aaa;
上面的資料供完成複雜的任務排程,下面是一下排程的例子:
2) 5 天後清空 test 表:
create event e_test
on schedule at current_timestamp + interval 5 day
do truncate table test.aaa;
3) 2007 年 7 月 20 日 12 點整清空 test 表:
create event e_test
on schedule at timestamp 『『2007-07-20 12:00:00『『
do truncate table test.aaa;
4) 每天定時清空 test 表:
create event e_test
on schedule every 1 day
do truncate table test.aaa;
5) 5 天後開啟每天定時清空 test 表:
create event e_test
on schedule every 1 day
starts current_timestamp + interval 5 day
do truncate table test.aaa;
6) 每天定時清空 test 表, 5 天後停止執行:
create event e_test
on schedule every 1 day
ends current_timestamp + interval 5 day
do truncate table test.aaa;
7) 5 天後開啟每天定時清空 test 表,乙個月後停止執行:
create event e_test
on schedule every 1 day
starts current_timestamp + interval 5 day
ends current_timestamp + interval 1 month
do truncate table test.aaa;
[on completion [not] preserve] 可以設定這個事件是執行一次還是持久執行,預設為 not preserve 。
8) 每天定時清空 test 表 ( 只執行一次,任務完成後就終止該事件 ) :
create event e_test
on schedule every 1 day
on completion not preserve
do truncate table test.aaa;
[enable | disable] 可是設定該事件建立後狀態是否開啟或關閉,預設為 enable 。
[comment 『 comment 』 ] 可以給該事件加上注釋。
mysql定時任務配置
配置mysql開啟定時任務 mysql設定定時任務
今天遇到了個需要每天定時執行的任務,在mysql資料庫裡面提供了這樣的功能,正好整理下分享出來。1.首先檢查是否開啟了定時任務 2.建立乙個儲存過程 3.設定定時任務呼叫這個儲存過程 從2015.8.8 1點每十秒執行一次 備註 在event事件中 on schedule 計畫任務,有兩種設定計畫任...
Linux環境Mysql配置定時備份
一 概述 備份是容災的基礎,是指為防止系統出現操作失誤或系統故障導致資料丟失,而將全部或部分資料集合從應用主機的硬碟或陣列複製到其它的儲存介質的過程。而對於一些 系統來說,資料庫就是一切,所以做好資料庫的備份是至關重要的!1 檢視磁碟空間情況 既然是定時備份,就要選擇乙個空間充足的磁碟空間,避免出現...
mysql定時備份指令碼 MySql定時備份指令碼
最近需要對某服務的資料庫資料進行備份,因此參考網上教程完成資料庫備份指令碼.因為服務的使用頻率較低,因此設定定時任務,在每天的中午以及午夜時分進行備份操作.bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user mysql password mysql hos...