MySQL 8.4 Reference Manual  /  ...  /  Event Scheduler Status

27.4.5 事件调度器状态

事件调度器在执行事件时出现错误或警告,会将相关信息写入 MySQL 服务器的错误日志。见第27.4.6节,“事件调度器和 MySQL 权限”,了解示例。

为了在调试和排错中获取事件调度器的状态信息,可以运行mysqladmin debug(见第6.5.2节,“mysqladmin — MySQL 服务器管理程序”);运行该命令后,服务器的错误日志中将包含事件调度器相关信息,类似于以下所示:

Events status:
LLA = Last Locked At  LUA = Last Unlocked At
WOC = Waiting On Condition  DL = Data Locked

Event scheduler status:
State      : INITIALIZED
Thread id  : 0
LLA        : n/a:0
LUA        : n/a:0
WOC        : NO
Workers    : 0
Executed   : 0
Data locked: NO

Event queue status:
Element count   : 0
Data locked     : NO
Attempting lock : NO
LLA             : init_queue:95
LUA             : init_queue:103
WOC             : NO
Next activation : never

在 Event Scheduler 执行的语句中,诊断信息(不仅限于错误,还有警告)写入到错误日志中,并且,在 Windows 中,写入到应用程序事件日志中。对于频繁执行的事件,这可能会导致许多日志消息出现。例如,对于 SELECT ... INTO var_list 语句,如果查询结果无行,警告代码为1329 (No data),变量值保持不变。如果查询结果有多行,错误代码为1172 (Result consisted of more than one row)。对于任何情况,可以通过声明条件处理器来避免日志警告;见第15.6.7.2节,“DECLARE ... HANDLER 语句”。对于可能检索多行的语句,另一个策略是使用 LIMIT 1 来限制结果集到单个行。