相关文件10bet官方网站 本手册下载 从本手册中摘录

25.4.2事件调度程序配置

事件由特殊执行事件调度线程;当我们引用事件计划程序时,我们实际上是指此线程。运行时,可以通过具有的用户看到事件调度程序线程及其当前状态过程的输出中的特权显示PROCESSLIST,如下面的讨论所示。

全球event_schedulersystem变量决定事件调度程序是否启用并在服务器上运行。它有以下值之一,这些值会影响事件调度,如下所述:

  • :事件调度程序已启动;事件调度程序线程运行并执行所有预定的事件。是默认的event_scheduler价值。

    事件调度程序,事件调度程序线程列在输出中显示PROCESSLIST作为一个守护进程,其状态如下所示:

    mysql >显示PROCESSLIST \ G  *************************** 1。行  *************************** Id: 1用户:根主持人:localhost db:零命令:查询时间:0状态:零信息:显示processlist  *************************** 2。row *************************** Id: 2 User: event_scheduler Host: localhost db: NULL Command: Daemon Time: 3 State: Waiting for next activation Info: NULL 2 rows in set (0.00 sec)

    可以通过设置的值来停止事件调度event_scheduler离开

  • 离开:停止事件调度程序。事件计划程序线程未运行,未显示在输出中显示PROCESSLIST,并且没有计划的事件执行。

    当事件调度程序停止时(event_scheduler离开),可以通过设置值来启动event_scheduler.(见下一个项目。)

  • 禁用:该值使事件调度程序不可操作。事件调度程序禁用,事件调度程序线程不会运行(因此不会出现在输出中显示PROCESSLIST).此外,事件调度程序状态不能在运行时更改。

如果事件调度程序状态尚未设置为禁用event_scheduler可以在介于之间切换离开(使用).它也可以使用0离开, 和1设置此变量时。控件中可以使用以下4个语句中的任意一个mysql客户端打开事件调度程序:

设置全局event_scheduler = ON;设置@@GLOBAL。event_scheduler =;设置全局event_scheduler = 1;设置@@GLOBAL。event_scheduler = 1;

同样,这中的任何一个语句都可用于关闭事件调度程序:

设置全局event_scheduler = OFF;设置@@GLOBAL。event_scheduler =;设置全局event_scheduler = 0;设置@@GLOBAL。event_scheduler = 0;
请注意

如果事件调度程序已启用,则启用super_read_only.系统变量可防止其更新事件最后执行时间戳的事件数据词典表。这会导致事件调度程序停止下次尝试执行计划事件,在向服务器错误日志写入消息后。(在这种情况下event_scheduler系统变量不会发生变化离开.含义是该变量将DBA重复意图将启用或禁用事件调度程序,其中启动或停止的实际状态可能是不同的。)。如果super_read_only.随后禁用启用后,服务器会根据MySQL 8.0.26根据需要重新启动事件调度程序。在MySQL 8.0.26之前,必须通过再次启用事件调度程序手动重新启动事件调度程序。

虽然离开具有数字等价物,显示值event_scheduler通过选择或者显示变量总是一个离开,或禁用禁用没有相等的数字.为此原因,离开通常比10设置此变量时。

请注意,试图设置event_scheduler如果不将其指定为全局变量,则会导致错误:

mysql 
重要的

可以将事件调度程序设置为禁用仅在服务器启动时。如果event_scheduler或者离开,你无法将它设置为禁用在运行时。此外,如果事件调度程序设置为禁用在启动时,不能更改event_scheduler在运行时。

要禁用事件调度程序,请使用以下两种方法之一:

  • 作为启动服务器时的命令行选项:

    ——event-scheduler =禁用
  • 在服务器配置文件中(my.cnf,或my.ini在Windows系统上),包含服务器可以读取它的行(例如,在[mysqld]部分):

    event_scheduler =禁用

要启用事件调度程序,请在不使用——event-scheduler =禁用命令行选项,或者在删除或注释掉包含的行之后event-scheduler =禁用在服务器配置文件中,适当。或者,您可以使用(或1) 或者离开(或0)代替禁用启动服务器时的值。

请注意

您可以发出事件操作语句event_scheduler设定为禁用.在这种情况下不会产生警告或错误(只要语句本身是有效的)。但是,在此变量设置为之前,计划的事件无法执行(或1).完成这一步后,事件调度程序线程将执行所有满足调度条件的事件。

启动mysql服务器--skip-grant-tables选择的原因event_scheduler设置为禁用,覆盖在命令行或在命令行中设置的任何其他值my.cnf或者my.ini文件(错误# 26807)。

有关用于创建、修改和删除事件的SQL语句,请参见第25.4.3节,“事件语法”

MySQL提供了一个活动表在Information_Schema.数据库。通过查询该表可以获取服务器上已定义的定时事件信息。看到第25.4.4节,“事件元数据”, 和第26.3.14节," The INFORMATION_SCHEMA EVENTS Table ",以获取更多信息。

有关事件调度和MySQL特权系统的信息,请参见第25.4.6节“活动计划程序和MySQL权限”