1. <var id="fe6gj"></var>

    <rp id="fe6gj"><nav id="fe6gj"></nav></rp>

    <noframes id="fe6gj"><cite id="fe6gj"></cite>

    <ins id="fe6gj"><button id="fe6gj"><p id="fe6gj"></p></button></ins>
    1. <tt id="fe6gj"><i id="fe6gj"><sub id="fe6gj"></sub></i></tt>
        始創于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償

        Mysql任務調度Event不執行解決方法

        出現Mysql任務調度Event不執行的時候,小編采用的方法如下:

        方法一:找到當前使用的 .cnf 文件,在 [mysqld] 的下面加入如下行

        event_scheduler=1 。

        MySQL5.1.x 版本中引入了一項新特性 EVENT ,顧名思義就是事件、定時任務機制,在指定的時間單元內執行特定的任務,因此今后一些對數據定時性操作不再依賴外部程序,而直接使用數據庫本身提供的功能。此功能是對 Oracle 的 Job/Schedule 的模仿, 5.1.X 版本以上才支持。

        創建 EVENT 語法如下:

        CREATE

        [DEFINER = { user | CURRENT_USER }]

        EVENT

        [IF NOT EXISTS]

        event_name

        ON SCHEDULE schedule

        [ON COMPLETION [NOT] PRESERVE]

        [ENABLE | DISABLE | DISABLE ON SLAVE]

        [COMMENT ''comment'']

        DO sql_statement;


        schedule:

        AT timestamp [+ INTERVAL interval]

        | EVERY interval

        [STARTS timestamp [+ INTERVAL interval]]

        [ENDS timestamp [+ INTERVAL interval]]


        interval:

        quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

        WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

        DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

        例如創建一個每 30 秒清空 tableA 數據的任務

        CREATE EVENT E_DELETE_ASO_TOKEN ON SCHEDULE EVERY 30 SECOND DO DELETE FROM tableA ;

        默認 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

        事件詳細語法事例 (EVENT)

        1> 創建事件 (CREATE EVENT)

        先來看一下它的語法:

        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 {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

        WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

        DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

        1) 首先來看一個簡單的例子來演示每秒插入一條記錄到數據表

        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;

        +---------------------+

        | timeline            |

        +---------------------+

        | 2007-07-18 20:44:26 |

        | 2007-07-18 20:44:27 |

        | 2007-07-18 20:44:28 |

        +---------------------+

        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 ’ ] 可以給該事件加上注釋。

        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;

        上一篇>>srv記錄是什么?有哪些用處? 下一篇>>無

        分享到:
      1. 您可能在找
      2. 億恩北京公司:
      3. 經營性ICP/ISP證:京B2-20150015
      4. 億恩鄭州公司:
      5. 經營性ICP/ISP/IDC證:豫B1-20183354
      6. 億恩南昌公司:
      7. 經營性ICP/ISP證:贛B2-20080012
      8. 服務器/云主機 24小時售后服務電話:0371-60135900
      9. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      10. 網絡版權侵權舉報電話:0371-60135995
      11. 警情提示:注意防范電信網絡詐騙
      12. 專注服務器托管19年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2024 ENKJ All Rights Reserved 地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師  B1-20183354   京公網安備41019702002023號 
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線

         
         
        av不卡不卡在线观看_最近2018年中文字幕_亚洲欧美一区二区三区_一级A爱做片免费观看国产_日韩在线中文天天更新_伊人中文无码在线