navicat下mysql任務計劃

對於mysql的計劃任務須要注意如下兩點mysql

1.否開啓了此功能,SHOW VARIABLES LIKE 'event_scheduler';sql

若是沒有開啓須要在my.ini or my.cnf 中的
[mysqld]
添加 event_scheduler=ON數據庫

2.若是客戶端遠程訪問,確認是否受權用戶:安全

ERROR 1044: Access denied for user: '@127.0.0.1 ' to database 'mysql'服務器

說明你沒有將權限下放到遠端鏈接賬戶上,因爲mysql的安全性在不斷的提升,權限設置默認是拒絕的,你必須本身開放權限。ide

在服務器上用mysql -h 192.168.0.1 -u root -p mysql命令登陸mysql數據庫測試

而後用grant命令下放權限。spa

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'root-password' WITH GRANT OPTION;.net

GRANT ALL PRIVILEGES ON *.* TO root@127.0.0.1 IDENTIFIED BY 'root-password' WITH GRANT OPTION;code

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'root-password' WITH GRANT OPTION;

例如:

  GRANT   ALL   PRIVILEGES   ON   *.*   TO   root@'%'   identified   by  '123456'  

注意:本身根據狀況修改以上命令中的 「用戶」「ip地址」「密碼」。

完成此兩步驟後可使用客戶端進行任務的建立了,這裏僅列出建立天天執行一次的定時任務,當前時間+6小時後開啓,直接上代碼:

CREATE EVENT `EVENT_EMULATE_STATISTICS`
ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOUR
ON COMPLETION NOT PRESERVE
ENABLE
DO
CALL pro_event_emulate_statistics()
;
DROP PROCEDURE IF EXISTS `pro_event_emulate_statistics`;

CREATE DEFINER = `root`@`%` PROCEDURE `pro_event_emulate_statistics`()
BEGIN
	自定義
END;

3.測試時須要注意服務器時間和本地時間是否一致,以避免測試時引發偏差

經過設定全局變量event_scheduler 的值便可動態的控制事件調度器是否啓用。  
查看是否event_scheduler開啓 mysql> SHOW VARIABLES LIKE '%event%'; 
設置開啓 mysql> SET GLOBAL event_scheduler=ON; 

詳細功能參考開源中國博客:http://www.oschina.net/question/4873_20927

相關文章
相關標籤/搜索