Mysql

自伺服器 12 天前重新啟動以來,MySQL 事件調度程序在空隊列中等待

  • November 23, 2020

我注意到伺服器上的一個程序已經執行了超過 12 天,我認為這與上次重新啟動 MySQL 的時間一致。

mysql> SHOW FULL PROCESSLIST;

+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
| Id      | User            | Host      | db   | Command | Time    | State                  | Info                  |
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
|       5 | event_scheduler | localhost | NULL | Daemon  | 1098372 | Waiting on empty queue | NULL                  |
| 1774483 | root            | localhost | NULL | Query   |       0 | starting               | SHOW FULL PROCESSLIST |
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
2 rows in set (0.00 sec)

沒有事件,我也沒有嘗試創建任何事件。

mysql> SELECT * FROM information_schema.EVENTS;

Empty set (0.00 sec)

這正在積極使用我伺服器 CPU 的 8%。

有沒有辦法確定這是什麼,或者為什麼開始?每次我重新啟動 MySQL 時都會嘗試執行嗎?如果是這樣,它在“等待”什麼,我是否需要調整我的配置以防止這種情況發生?

MySQL 8.0.21

顧名思義,event_Scheduler 是一種安排事件(在本例中為查詢)在給定時間在 MySQL 中執行的方法。它只是在等待一個事件觸發它並告訴它做某事。如您所見,您沒有設置任何事件,因此它將等待很長時間。

它預設啟用,但可以通過執行以下命令禁用:

SET @@global.event_scheduler = 0;

您還想添加:

event_scheduler = OFF

到您的 my.cnf 文件,以防止它在重新啟動後啟動。

引用自:https://dba.stackexchange.com/questions/280163