轉(zhuǎn)自我領(lǐng)導(dǎo)coding_lcc的簡書http://www.reibang.com/p/92d2cd569627
1蚣抗、問題發(fā)現(xiàn):
項目中有一需求需要每天用計劃任務(wù)對數(shù)據(jù)庫進行更新饮六,因此此前開啟了計劃任務(wù)來每天定時執(zhí)行函數(shù)芒划。但時不時會發(fā)現(xiàn)第租,這個計劃任務(wù)時不時會自動關(guān)閉迎罗,進行排查后確定原因為:重啟mysql或者Linux系統(tǒng)后利朵,mysql的計劃任務(wù)默認為關(guān)閉篮撑,即執(zhí)行"show variables like 'event_scheduler';",結(jié)果為OFF在岂。
2奔则、解決辦法:
一、單獨執(zhí)行一次函數(shù)蔽午,排查函數(shù)是否可用易茬。
結(jié)果:函數(shù)執(zhí)行成功,排除函數(shù)本身錯誤的問題及老。
二抽莱、用"mysql>show events;",查詢mysql中計劃事件的狀態(tài)骄恶。
結(jié)果:查看Status欄食铐,發(fā)現(xiàn)status為ENABLED,函數(shù)已啟動叠蝇。
三璃岳、查詢計劃事件的狀態(tài):"mysql>SHOW VARIABLES LIKE 'event_scheduler';",是否啟用定時器悔捶。
結(jié)果:? | event_scheduler |OFF|,定時器關(guān)閉单芜。
PS:也可以用"SET GLOBAL event_scheduler = ON;"或者"SET GLOBAL event_scheduler = 1;"來開啟蜕该,但沒修改配置文件的前提下,下次重啟服務(wù)器依然自動關(guān)閉洲鸠。
四堂淡、上網(wǎng)查詢后得知,每次重啟服務(wù)器扒腕,或者mysql都會導(dǎo)致定時器自動關(guān)閉(event_scheduler = OFF)绢淀,因此我們需要修改配置文件,使得每次mysql啟動時自動開啟定時器瘾腰。方法如下:
Windows中mysql配置文件為my.ini皆的,Linux中為my.cnf,位置/etc/my.cnf蹋盆。
修改該文件费薄,在[mysqld]部分加上event_scheduler=ON即可硝全。
五、重啟mysql楞抡,檢查是否重啟后默認為ON伟众。
結(jié)果:重啟后發(fā)現(xiàn)event_scheduler=ON,問題解決召廷。
作者:coding_lcc
鏈接:http://www.reibang.com/p/92d2cd569627
來源:簡書
著作權(quán)歸作者所有凳厢。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處竞慢。