【MySQL】玩转定时器
1、前置條件,你需要將服務(wù)器和mysql的時(shí)間都設(shè)置成東八區(qū),php.ini和my.cnf配置(參考上篇文章)
2、進(jìn)入mysql客戶端,推薦Navicat for mysql
3、首先查看是否開啟了定時(shí)器的功能:
####調(diào)試MYSQL定時(shí)器 --時(shí)間設(shè)置正確情況下執(zhí)行下面沒影響 xzz1128 ##### set time_zone = '+8:00'; SHOW VARIABLES LIKE 'event_scheduler';##查看是否開啟了event定時(shí)器功能 set GLOBAL event_scheduler = 1; //開啟 select NOW();4、提醒:雖然這里用set global event_scheduler = on語句開啟了事件,但是每次重啟電腦。或重啟mysql服務(wù)后,會(huì)發(fā)現(xiàn),事件自動(dòng)關(guān)閉(event_scheduler=OFF),所以想讓事件一直保持開啟,最好修改配置文件,讓mysql服務(wù)啟動(dòng)的時(shí)候開啟時(shí)間,只需要在my.cnf配置文件的[mysqld]部分加上event_scheduler=ON?即可,如下:
5、首先、新建user表:
-- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(200) NOT NULL,`address` varchar(500) NOT NULL,`addtime` datetime NOT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;然后、新建事件,有兩種事件類型,一個(gè)是間隔觸發(fā),另一個(gè)是特定事件觸發(fā)。
6、下面代碼中分別介紹了定時(shí)器執(zhí)行持續(xù)性動(dòng)作(每個(gè)時(shí)間點(diǎn)需要干的)和一次性動(dòng)作(只用一次,用完即甩)
?
################# mysql持續(xù)性定時(shí)器 -xzz 1128 ########################## DROP EVENT IF EXISTS `event_minute`; DELIMITER ;; CREATE DEFINER=`root`@`localhost` EVENT `event_minute` ON SCHEDULE EVERY 1 MINUTE STARTS '2017-11-28 15:26:00' ON COMPLETION PRESERVE #當(dāng)這個(gè)事件不會(huì)再發(fā)生的時(shí)候不會(huì)被Drop掉 ENABLE DO BEGININSERT INTO `user`(name, address,addtime) VALUES('test1','test1',now());INSERT INTO `user`(name, address,addtime) VALUES('test2','test2',now()); END ;; DELIMITER ; ##################mysql一次性定時(shí)器################################# DROP EVENT IF EXISTS `event_at`; DELIMITER ;; CREATE DEFINER=`root`@`localhost` EVENT `event_at` ON SCHEDULE AT '2017-11-28 15:39:00' ON COMPLETION NOT PRESERVE #當(dāng)這個(gè)事件不會(huì)再發(fā)生的時(shí)候會(huì)被Drop掉 ENABLE DO BEGININSERT INTO `user`(name, address,addtime) VALUES('AT','AT',now()); END ;; DELIMITER ;?
7、其他比較重要的操作語句
###關(guān)閉\打開定時(shí)器 ALTER EVENT event_minute DISABLE; ALTER EVENT event_minute ENABLE; ###查詢定時(shí)器狀態(tài) select * from mysql.event ;?
8、看看效果:
8、感謝:
@Author ?????風(fēng)一樣的碼農(nóng)
@HomePageUrl?http://www.cnblogs.com/chenpi/?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xuzhengzong/p/7910430.html
總結(jié)
以上是生活随笔為你收集整理的【MySQL】玩转定时器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冲刺链接总汇
- 下一篇: MySQL slave_exec_mod