日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql 事件

發布時間:2025/3/21 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql 事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:https://www.cnblogs.com/jalja/p/5431567.html

mysql 創建任務(事件)
  1、檢查數據庫事件是否開啟,如果 event_scheduler 等于 NO表示開啟
    SELECT @@event_scheduler;?
    SHOW VARIABLES LIKE 'event_scheduler';
    SELECT @@event_scheduler;
  2、開啟任務(事件)
    a、set global event_scheduler=1;?
    b、SET GLOBAL event_scheduler = ON;
    c、在my.cnf中的[mysqld]部分添加 event_scheduler=ON 然后重啟mysql。
  3、關閉事件
    SET GLOBAL event_scheduler = OFF;
  4、語法:
 

CREATE[DEFINER = { user | CURRENT_USER }]EVENT[IF NOT EXISTS]event_nameON SCHEDULE schedule[ON COMPLETION [NOT] PRESERVE][ENABLE | DISABLE | DISABLE ON SLAVE][COMMENT 'comment']DO event_body;schedule:AT timestamp [+ INTERVAL interval] ...| EVERY interval[STARTS timestamp [+ INTERVAL interval] ...][ENDS timestamp [+ INTERVAL interval] ...]interval:quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |WEEK | SECOND | YEAR_MONTH | DAY_HOUR |DAY_MINUTE |DAY_SECOND | HOUR_MINUTE |HOUR_SECOND | MINUTE_SECOND}

參數詳細說明:
DEFINER: 定義事件執行的時候檢查權限的用戶。
ON SCHEDULE schedule: 定義執行的時間和時間間隔。
ON COMPLETION [NOT] PRESERVE: 定義事件是一次執行還是永久執行,默認為一次執行,即NOT PRESERVE。
ENABLE | DISABLE | DISABLE ON SLAVE: 定義事件創建以后是開啟還是關閉,以及在從上關閉。如果是從服務器自動同步主上的創建事件的語句的話,會自動加上DISABLE ON SLAVE。
COMMENT 'comment': 定義事件的注釋。
5、開啟事件
alter event event_name(事件名稱) ON COMPLETION PRESERVE ENABLE;?
6、關閉事件
alter event event_name(事件名稱) ON COMPLETION PRESERVE DISABLE;?
7、刪除事件
DROP EVENT [IF EXISTS] event_name(事件名稱)
8、案例

CREATE TABLE `test` (`id` int(11) NOT NULL AUTO_INCREMENT,`t1` datetime DEFAULT NULL,`id2` int(11) NOT NULL DEFAULT '0',PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8<!-- 創建一個每隔3秒往test表中插入一條數據的事件 --> CREATE EVENT IF NOT EXISTS e_test_1 ON SCHEDULE EVERY 3 SECOND ON COMPLETION PRESERVE DO INSERT INTO test(id,t1) VALUES(NULL,NOW()); <!-- 創建一個10分鐘后清空test表數據的事件 --> CREATE EVENT IF NOT EXISTS e_test_2 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE DO TRUNCATE TABLE test; <!-- 調用存儲過程 --> 1、創建過程 CREATE PROCEDURE pro_test()BEGININSERT INTO test(id,t1,id2) VALUES(NULL,NOW(),'1000000');END 2、調用過程 CREATE EVENT IF NOT EXISTS e_test_3 ON SCHEDULE EVERY 3 SECOND ON COMPLETION PRESERVE DO CALL pro_test();

9、關于事件的權限問題 (Access denied for user 'root'@'%' to database ‘xxxx’)
  使用Naicat Premium遠程連接的mysql上面創建了一個新數據庫和新的用戶后,給該用戶添加這個新數據庫權限時出現:
  access denied for user 'root'@'%' to database xxxx的提示。
  錯誤的原因是root用戶在遠程連接的MYSQL上面,沒有這個新數據庫的授權。在本地使用mysql應該不存在這個問題。
  解決方法,執行授權:
    UPDATE mysql.user SET Event_priv = 'Y' WHERE HOST='%' AND USER='root';
    FLUSH PRIVILEGES;
    grant all PRIVILEGES on xxxx.* to root@'%' identified by 'password' with grant option;
    grant all on xxxx.* to 'root'@'%' identified by 'password' with grant option;?
    xxxx為創建的數據庫,password為root的密碼。請按實際要求進行更改。

每天用心記錄一點點。內容也許不重要,但習慣很重要!

轉載于:https://www.cnblogs.com/bisonkeji/p/10694017.html

總結

以上是生活随笔為你收集整理的Mysql 事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。