原创

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),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信