事件是由一个特殊的事件计划程序线程;当我们引用事件调度程序时,我们实际上引用了这个线程。控件的用户在运行时可以看到事件调度程序线程及其当前状态过程
产出的特权显示processlist.
,如下讨论所示。
全球event_scheduler.
system变量决定事件调度程序是否启用并在服务器上运行。它有这3个值之一,它们影响这里描述的事件调度。默认值是在
.
在
:事件调度程序已启动;事件计划程序线程运行并执行所有计划的事件。当事件调度程序是
在
,事件调度程序线程列在输出中显示processlist.
作为守护程序进程,其状态表示如下所示:mysql> show processlist \ g *************************** 1.行***************************** ID:1用户:root host:localhost db:null命令:查询时间:0状态:null信息:显示processlist *************************** 2.行*************************** ID:2用户:event_scheduler主机:localhost db:null命令:守护程序时间:3状态:等待下一个激活信息:设置为null 2行(0.00秒)
可以通过设置值来停止事件调度
event_scheduler.
至从
.从
:事件调度程序停止。事件调度程序线程不运行,不在输出中显示显示processlist.
,并且没有执行计划事件。事件调度程序停止时(
event_scheduler.
是从
),可以通过设置值来启动event_scheduler.
至在
.(参见下一项)。禁用
:此值呈现事件调度程序非操作。当事件调度程序是禁用
,事件计划程序线程未运行(因此不显示输出中显示processlist.
)。此外,事件调度程序状态不能在运行时更改。
事件调度程序状态未设置为禁用
那event_scheduler.
可以之间切换吗在
和从
(使用放
)。也可以使用0.
为了从
,1
为了在
设置此变量时。因此,可以使用以下任何4个陈述mysql.客户端打开事件计划程序:
设置Global Event_scheduler = ON;设置@@ global.event_scheduler = ON;设置全局event_scheduler = 1;set @@ global.event_scheduler = 1;
类似地,这4条语句中的任何一条都可以用来关闭事件调度程序:
设置Global Event_scheduler = OFF;设置@@ global.event_scheduler = OFF;设置全局event_scheduler = 0;设置@@ global.event_scheduler = 0;
虽然在
和从
有数字等价物,值显示为event_scheduler.
经过选择
或显示变量
总是其中之一从
那在
, 或者禁用
.禁用
没有数字等价物.由于这个原因,在
和从
通常优先于1
和0.
设置此变量时。
请注意,试图设置event_scheduler.
如果没有将其指定为全局变量会导致错误:
mysql< SET @@event_scheduler = OFF;ERROR 1229 (HY000):变量'event_scheduler'是一个全局变量,应该设置为set GLOBAL
可以将事件调度程序设置为禁用
仅在服务器启动时。如果event_scheduler.
是在
或从
,你不能设置它禁用
在运行时。此外,如果事件调度程序设置为禁用
在启动时,您无法更改值event_scheduler.
在运行时。
要禁用事件计划程序,请使用以下两种方法之一:
作为命令行选项启动服务器时:
-Event-Scheduler =已禁用
在服务器配置文件中(
我.CNF.
, 或者My.ini.
在Windows系统上),包括服务器可以读取的线(例如,在a中(mysqld)
部分):event_scheduler =已禁用
要启用事件调度程序,请在没有的情况下重新启动服务器-Event-Scheduler =已禁用
命令行选项,或删除或注释删除包含的行Event-Scheduler =已禁用
在服务器配置文件中。或者,您可以使用在
(或者1
)或从
(或者0.
)来代替禁用
启动服务器时的值。
您可以在何时发出事件操作陈述event_scheduler.
被设置为禁用
.在这种情况下不会产生警告或错误(如果陈述本身是有效的)。但是,在该变量设置为时,计划的事件无法执行在
(或者1
)。一旦完成了这一旦完成,事件调度程序线程就执行满足其调度条件的所有事件。
启动mysql服务器——skip-grant-tables
选项原因event_scheduler.
设置为禁用
,覆盖命令行上或我.CNF.
或My.ini.
文件(bug#26807)。
对于用于创建,更改和删除事件的SQL语句,请参阅第25.4.3节“事件语法”.
MySQL提供了一个事件
表中INFORMATION_SCHEMA
数据库。可以查询此表以获取有关在服务器上定义的计划事件的信息。看第25.4.4节“事件元数据”,第26.3.14节“Information_schema事件表”, 想要查询更多的信息。
有关事件调度和MySQL权限系统的信息,请参阅第25.4.6节,“事件调度程序和MySQL特权”.