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代表已啟動。

Status需要為ENABLE

如果狀態不為ENABLE,我們需要在定時任務的狀態欄將其修改為ENABLE。

修改定時任務狀態為ENABLE

讓定時任務快速執行

有些定時任務是每天或更久才執行一次,如果想要時間自然流動去測試會比較麻煩,這個時候,我們就需要根據計劃修改數據庫服務器的時間,這樣就能快速測試這個定時任務是否能夠正常執行瞭。

總結

到此這篇關於MySQL定時任務不能正常執行的原因分析及解決方法的文章就介紹到這瞭,更多相關MySQL定時任務內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: