mysql> show variables like '%event_scheduler%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | OFF | +-----------------+-------+
3.2.2 开启事件调度器 通过命令行
可通过如下任何一个命令行
1 2 3 4
SET GLOBAL event_scheduler = ON; SET @@global.event_scheduler = ON; SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1;
通过配置文件my.cnf
1
event_scheduler = 1 #或者ON
查看调度器线程
1 2 3 4 5 6 7
mysql> show processlist; +----+-----------------+-----------+------+---------+------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------+------+---------+------+------------------------+------------------+ | 2 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 3 | event_scheduler | localhost | NULL | Daemon | 6 | Waiting on empty queue | NULL | +----+-----------------+-----------+------+---------+------+------------------------+------------------+
3.2.3 关闭事件调度器
通过命令行
可通过如下任何一个命令行
1 2 3 4
SET GLOBAL event_scheduler = OFF; SET @@global.event_scheduler = OFF; SET GLOBAL event_scheduler = 0; SET @@global.event_scheduler = 0;
通过配置文件my.cnf
在[mysqld]下增加
1
event_scheduler = 0 #或者OFF,DISABLED
查看调度器线程
1 2 3 4 5 6
mysql> show processlist; +----+------+-----------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+-------+------------------+ | 2 | root | localhost | NULL | Query | 0 | NULL | show processlist | +----+------+-----------+------+---------+------+-------+------------------+
3.3 例如:创建一个表记录每次事件调度的名字和事件戳
3.3.1 创建测试表
1 2
mysql> drop table if exists events_list; mysql> create table events_list(event_name varchar(20) not null, event_started timestamp not null);
3.3.2 创建事件1(立即启动事件)
1 2 3 4
create event event_now on schedule at now() do insert into events_list values('event_now', now());