原创

mysql 数据库开启计划事件

MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。

1、在sql中查询计划事件的状态是否开启,三种命令使用如下:

SHOW VARIABLES LIKE 'event_scheduler';

命令执行,结果如下:

mysql> SHOW VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0.00 sec)

SELECT @@event_scheduler;

命令执行,结果如下:

mysql> SELECT @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| ON|
+-------------------+
1 row in set (0.00 sec)

SHOW PROCESSLIST;

命令执行,结果如下:

mysql> SHOW PROCESSLIST;
+----+-----------------+-----------------+-------------------+---------+-------+-----------------------------+------------------+
| Id | User    | Host    | db| Command | Time  | State       | Info     |
+----+-----------------+-----------------+-------------------+---------+-------+-----------------------------+------------------+
| 20 | event_scheduler | localhost       | NULL      | Daemon  | 63888 | Waiting for next activation | NULL     |
| 36 | root    | localhost:63196 | NULL      | Sleep   |  1117 |     | NULL     |
| 37 | root    | localhost:63198 | bank      | Sleep   |  1116 |     | NULL     |
| 38 | root    | localhost:63199 | CultureRepository | Sleep   |  1114 |     | NULL     |
| 41 | ODBC    | localhost:63421 | NULL      | Query   |     0 | NULL| SHOW PROCESSLIST |
+----+-----------------+-----------------+-------------------+---------+-------+-----------------------------+------------------+
5 rows in set (0.00 sec)

2、event_scheduler为on或PROCESSLIST中显示有event_scheduler的信息说明就已经开启事件;显示为off或者在PROCESSLIST中无event_scheduler信息,那么说明事件没有开启。

1)在mysql程序目录下找到my.ini文件,添加内容:event_scheduler = 1

保存后重启mysql服务即可,使用阿里云mysql数据库报错,Mysql无法启动"Cannot allocate memory for the buffer pool"参考地址:http://blog.yoodb.com/yoodb/article/detail/1016

2)如果不想重启mysql数据库,开启event_scheduler使用sql命令,具体如下:

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

3)关闭event_scheduler使用sql命令,具体如下:

SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;
~阅读全文~人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信