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、語法:
參數詳細說明:
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、案例
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
總結
- 上一篇: SOAP详解
- 下一篇: Select 多个表并且相关联转置