原创

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),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信