mysql的定時(shí)任務(wù)一般用event(事件)來(lái)完成,觸發(fā)器無(wú)法完成。一、通過(guò)mysql的命令行客戶(hù)端來(lái)完成
10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有蓬安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1、set global event_scheduler =1; //開(kāi)啟event_scheduler
執(zhí)行這個(gè)語(yǔ)句如果出現(xiàn),可在mysql的配置文檔中設(shè)置[mysqld]段中添加 event_scheduler=ON
如果重啟mysql;這種情況下依然出錯(cuò),Error Code: 1290. The MySQL server is running with the --event-scheduler=DISABLED
or --skip-grant-tables option so it cannot execute this statement,這個(gè)錯(cuò)誤是說(shuō)啟動(dòng)服務(wù)器時(shí)如果指定了--skip-grant-tables選項(xiàng),則event_scheduler則自動(dòng)被設(shè)置為DISABLED。命令行或配置文件的設(shè)置都會(huì)被覆蓋。建議重現(xiàn)安裝mysql或是修改啟動(dòng)參數(shù)(在系統(tǒng)服務(wù)中指定)。
查看event_scheduler狀態(tài):show status like '%event%'; 或SELECT @@event_scheduler;
2、CREATE PROCEDURE Mypro() //創(chuàng)建存儲(chǔ)過(guò)程
BEGIN
update userinfo SET endtime = now() WHERE id = '155';
END;
3、創(chuàng)建event My_enevt,每隔三十秒執(zhí)行一次
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call Mypro();
4、關(guān)閉事件
alter event e_test ON COMPLETION PRESERVE DISABLE;
5、開(kāi)啟事件
alter event e_test ON COMPLETION PRESERVE ENABLE;
語(yǔ)法:
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}
用linux的定時(shí)任務(wù)crond
Crond是linux系統(tǒng)中用來(lái)定期執(zhí)行命令/腳本或指定程序任務(wù)的一種服務(wù)或軟件,一般情況下,我們安裝完Centos5/6 linux操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)Crond任務(wù)調(diào)度服務(wù)。
Crond服務(wù)會(huì)定期(默認(rèn)每分鐘檢查一次)檢查系統(tǒng)中是否有要執(zhí)行的任務(wù)工作,如果有,便會(huì)根據(jù)其預(yù)先設(shè)定的定時(shí)任務(wù)規(guī)則自動(dòng)執(zhí)行該定時(shí)任務(wù)工作,這個(gè)crond定時(shí)任務(wù)服務(wù)就相當(dāng)于我們平時(shí)早起使用的鬧鐘一樣。
crontab -l 查看當(dāng)前用戶(hù)的定時(shí)任務(wù)配置
crontab -e 進(jìn)入當(dāng)前用戶(hù)的定時(shí)任務(wù)vim編輯模式
具體你查下linux crond的用法
給你個(gè)例子
drop procedure if exists call proc_temp;
delimiter $ //存儲(chǔ)過(guò)程從$ 開(kāi)始
create procedure proc_temp(
IN startDate VARCHAR(20),//設(shè)置傳入的變量,沒(méi)有可以不要傳
IN endDate VARCHAR(20))
BEGIN
DECLARE dflag INT(11); //這里可以定義你需要的僅在存儲(chǔ)過(guò)程里使用的變量
SET dflag = 0;//初始化
select * from table where time between startDate and endDate ;//你的sql語(yǔ)句,可以一句可以多句
END $//存儲(chǔ)過(guò)程從$ 結(jié)束
delimiter ;
當(dāng)上面的選中運(yùn)行后沒(méi)問(wèn)題,可以選中下面的call xx 運(yùn)行,上面的代碼沒(méi)有改動(dòng)的話(huà)只需要運(yùn)行一次
call proc_temp("2017-07-05","2017-08-05")
1、首先,我們需要修改mysql的配置文件,一般文件存放在/etc下面,文件名為my.cnf。
2、對(duì)于mysql服務(wù)的啟動(dòng),我們通常使用命令service mysqld start,沒(méi)問(wèn)題的話(huà)就能啟動(dòng)mysql服務(wù)了。
3、如何判斷mysql服務(wù)有沒(méi)有啟動(dòng)成功了,一個(gè)是通過(guò)查看進(jìn)程的方式,我們使用命令ps -ef|grep mysqld,來(lái)查看。
4、當(dāng)然,更為穩(wěn)妥的方法是使用命令mysql -uuser -p passwd 來(lái)進(jìn)行連接,看看是否能接上。
5、如何停止mysql的服務(wù)呢。方法也很簡(jiǎn)單,使用命令:service mysqld stop命令即可。
6、一般,如果mysql服務(wù)沒(méi)有啟動(dòng)成功,可以通過(guò)查看錯(cuò)誤日志的方式,日志默認(rèn)路徑/var/log/mysqld.log,
7、完成效果圖。
最常用的做法是使用UNIX的cron直接執(zhí)行Java程序。
并不需要在Java做的那么復(fù)雜。
Windows服務(wù)器也有類(lèi)似于cron的任務(wù)管理功能,同理
---------------------------
Tomcat不是用來(lái)管理定時(shí)任務(wù)的,如果沒(méi)有HTTP請(qǐng)求,Servlet是不會(huì)被執(zhí)行的。
建議lz把定期執(zhí)行的處理做成一個(gè)獨(dú)立的Java程序,用cron執(zhí)行。
如果不想寫(xiě)?yīng)毩⒌腏ava程序,也可以用cron定期向Tomcat發(fā)送Http請(qǐng)求,但是,這樣做的話(huà)注意程序處理時(shí)間不能太長(zhǎng),因?yàn)镠TTP通信有timeout的制約。
右鍵以文本文件的形式打開(kāi),里面是記錄著可以在mysql里面執(zhí)行的代碼。
要執(zhí)行sql文件里面的代碼,需要打開(kāi)mysql數(shù)據(jù)庫(kù)去執(zhí)行,新手推薦用軟件的形式執(zhí)行此sql,軟件如navicat,sqlyog等。
打開(kāi)軟件并且配置連接數(shù)據(jù)庫(kù)的信息后打開(kāi),然后創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),之后右鍵數(shù)據(jù)庫(kù)選中執(zhí)行sql,接著選擇要執(zhí)行的sql文件,按提示一步一步走下去即可。
老手推薦使用cmd指令來(lái)執(zhí)行sql,因?yàn)樗俣缺容^快,首先也是連接上數(shù)據(jù)庫(kù),創(chuàng)建并選擇好數(shù)據(jù)庫(kù):
mysqluse 數(shù)據(jù)庫(kù)名;
mysqlset names utf8; --設(shè)置傳輸編碼,避免中文亂碼
mysqlsource d:/xxx.sql; -- source 文件路徑
就這么簡(jiǎn)單, 然后就等著sql執(zhí)行完畢即可.
分享名稱(chēng):mysql怎么執(zhí)行任務(wù),mysql的執(zhí)行過(guò)程
文章轉(zhuǎn)載:http://jinyejixie.com/article46/hsdseg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷(xiāo)推廣、靜態(tài)網(wǎng)站、建站公司、網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容