MySQL定時任務不能正常執行的原因分析及解決方法
前言
在使用數據庫定時任務時,常常會出現定時任務不執行的問題,現對該問題出現的原因及解決方案做一些分析和整理。
原因分析及解決方法
當我們發現MySQL的定時任務沒有執行時,首先去定時任務中查看【上次運行】時間是否正確,判斷其是否正常執行,如果正常執行則需要考慮是否是事件邏輯不正確。
如果上次運行時間為空或者不正確,則需要查看數據庫是否打開瞭定時任務,通過執行下列查詢語句進行查詢
show VARIABLES like ‘%event_schedule%’
如果結果為ON則說明數據庫打開瞭定時任務,為OFF則沒有打開。
如果查詢結果為OFF,有兩種解決方法:
1.直接在數據庫中設置
SET GLOBAL event_scheduler = ON;
該方法可以立即生效,但是在數據庫重啟後會失效。
2.在數據庫配置文件中進行修改
在my.ini的[mysqld]模塊中添加如下代碼:
event_scheduler=ON
該方法需要重啟數據庫才能生效,不會隨數據庫重啟而失效。
啟動瞭數據庫的定時任務後,還需要查看你自己的定時任務是否可執行,在數據庫中執行如下查詢語句:
show events
查看查詢結果中的Status是否正確,結果為ENABLE代表已啟動。
如果狀態不為ENABLE,我們需要在定時任務的狀態欄將其修改為ENABLE。
讓定時任務快速執行
有些定時任務是每天或更久才執行一次,如果想要時間自然流動去測試會比較麻煩,這個時候,我們就需要根據計劃修改數據庫服務器的時間,這樣就能快速測試這個定時任務是否能夠正常執行瞭。
總結
到此這篇關於MySQL定時任務不能正常執行的原因分析及解決方法的文章就介紹到這瞭,更多相關MySQL定時任務內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MySQL 使用事件(Events)完成計劃任務
- 利用Mysql定時+存儲過程創建臨時表統計數據的過程
- Mysql存儲過程、觸發器、事件調度器使用入門指南
- MySQL系列之十一 日志記錄
- Mysql連接數設置和獲取的方法