添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
查看event是否开启:show variables like 'event_scheduler'; 这时你会发现 event_scheduler 的值是 OFF
mysql> show variables like 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+
  • 临时 开启 event 事件: set global event_scheduler=1;
  • 执行完以上命令,再次查看event状态,可以看到event_scheduler的值变成ON,此时event的状态为“开启”;

    注意:此方法只是临时开启event状态,当MySQL重新启动时,event状态会改变回原来的“OFF”,即“关闭状态”;

  • 永久开启 event 事件:修改MySQL配置文件
  • windows 系统的 MySQL的配置文件名是 my.ini Linux 系统的 MySQL 的配置文件名是 my.cnf

    打开配置文件在 [mysqld] 模块下添加 event_scheduler=on event_scheduler=1

    重新启动MySQL

    问题2: 新建事件的状态为改为ENABLE;

    修改完之后,event事件生效了。

    经过多次测试”周期性调用“事件:发现每1秒、每一分钟执行一次都成功,当测试每天执行一次时,发现并没有生效。

    后来发现,我测试”每天执行一次时“是修改系统时间去测试的,问题就出现在这里。

    event事件并不是每时每刻都在扫描,而是采用休息休眠。 休眠一段时间后,等待下一次执行,再重新获取新的系统时间,再重新计算。 
    总结来说,Mysql记录的是启动时间和时间间隔,通过系统时间,三个数值来计算下一个休眠时间,所以在休眠期间内改变系统时间,对休眠时间是无效的。 
    也就是说,休眠期间,它并没实现监听系统的时间