標籤:
對於mysql的計劃任務需要注意以下兩點
1.否開啟了此功能,SHOW VARIABLES LIKE ‘event_scheduler‘;
如果沒有開啟需要在my.ini or my.cnf 中的
[mysqld]
添加 event_scheduler=ON
2.如果用戶端遠端存取,確認是否授權使用者:
ERROR 1044: Access denied for user: ‘@127.0.0.1 ‘ to database ‘mysql‘
說明你沒有將許可權下放到遠端連線帳戶上,由於mysql的安全性在不斷的提高,使用權限設定預設是拒絕的,你必須自己開放許可權。
在伺服器上用mysql -h 192.168.0.1 -u root -p mysql命令登入mysql資料庫
然後用grant命令下放許可權。
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY ‘root-password‘ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO root@127.0.0.1 IDENTIFIED BY ‘root-password‘ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO [email protected]‘%‘ IDENTIFIED BY ‘root-password‘ WITH GRANT OPTION;
例如:
GRANT ALL PRIVILEGES ON *.* TO [email protected]‘%‘ identified by ‘123456‘
注意:自己根據情況修改以上命令中的 “使用者”“ip地址”“密碼”。
完成此兩步驟後可以使用用戶端進行任務的建立了,這裡僅列出建立每天執行一次的定時任務,目前時間+6小時後開啟,直接上代碼:
CREATE EVENT `EVENT_EMULATE_STATISTICS`ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOURON COMPLETION NOT PRESERVEENABLEDOCREATE TABLE IF NOT EXISTS mooc_sf_emulate_statistics_day(id BIGINT NOT NULL,emulate_id BIGINT,learn_day_number INTEGER,create_time DATETIME,modify_time DATETIME,delete_flag BIT,PRIMARY KEY (id));
通過設定全域變數event_scheduler 的值即可動態控制事件調度器是否啟用。
查看是否event_scheduler開啟 mysql> SHOW VARIABLES LIKE ‘%event%‘;
設定開啟 mysql> SET GLOBAL event_scheduler=ON;
詳細功能參考開源中國部落格:http://www.oschina.net/question/4873_20927
navicat下mysql任務計劃