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;