在 MySQL 中,我们可以通过以下查询启用事件调度程序:
SET GLOBAL event_scheduler = ON;
同样,要关闭调度程序:
SET GLOBAL event_scheduler = OFF;
但是,有没有任何查询/方法可以检查
event_scheduler
的状态,无论是ON
还是OFF
?
使用 显示变量
SHOW VARIABLES
WHERE VARIABLE_NAME = 'event_scheduler'
使用以下命令查看事件状态,您可以选择其中任何一个。
SELECT @@global.event_scheduler
or
SHOW variables WHERE variable_name ='event_scheduler'
暂时启用或关闭事件
SET GLOBAL event_scheduler = OFF;
SET GLOBAL event_scheduler = ON;
对于永久设置,请转到 my.cnf 或 my.ini 或 /etc/my.cnf.d/server.cnf 文件内,并根据您的要求在 [mysqld] 下设置 event_scheduler =ON 或 event_scheduler=OFF。
这也应该有效:
select @@global.event_scheduler = 'ON'
这在存储过程中使用起来更容易一些,您可能想在打开它之前知道它是否已打开。请注意,我在使用 ON 或 1 打开 Event_Scheduler 后在 MySQL 5.7 上对此进行了测试。在这两种情况下,查询变量都会返回“ON”。
另请注意,引号用于查询,但不用于设置变量。给你一点 mysql 的奇怪之处。
通过下面的 SQL,您可以检查
event_scheduler
是 ON
还是 OFF
。 *文档解释了SHOW VARIABLES
声明:
mysql> SHOW VARIABLES WHERE VARIABLE_NAME = 'event_scheduler';
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| event_scheduler | ON |
+-----------------+----------------+
此外,通过下面的SQL,您还可以检查
event_scheduler
是ON
还是OFF
。 *如果 event_scheduler
是 ON
,则 event_scheduler
出现,如果 event_scheduler
是 OFF
,则 event_scheduler
不出现,并且 文档 解释 SHOW PROCESSLIST
声明:
SHOW PROCESSLIST;
或者:
SHOW FULL PROCESSLIST;