mysql定時自動執行sql指令




進入MYSQL後

1. SHOW PROCESSLIST;

先看看有沒有排程中的,有的話應該看到user是event_scheduler;command是Deamon;

2. show variables like ‘%sche%’;

檢查看看有沒有看到一條 event_scheduler 是顯示 ON 的,

如果沒有的話,執行語法 set global event_scheduler = 1 ;

3. 我這次目標是要每天執行一次語法 flush hosts ; 設定PROCEDURE為timing_flush_hosts()

CREATE PROCEDURE timing_flush_hosts()
BEGIN
flush hosts ;
END;

4. 使用EVENT,EVENT名稱設定為event_flush_host,設定每1天(1 DAY)執行一次PROCEDURE

create event if not exists event_flush_hosts
on schedule every 1 DAY
on completion preserve
do call timing_flush_hosts();

5. 關掉它

alter event event_flush_hosts ON
COMPLETION PRESERVE DISABLE;

6. 重新開啟他

alter event event_flush_hosts ON
COMPLETION PRESERVE ENABLE;