Mysql
自伺服器 12 天前重新啟動以來,MySQL 事件調度程序在空隊列中等待
我注意到伺服器上的一個程序已經執行了超過 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 文件,以防止它在重新啟動後啟動。