即使MySQL重新启动,如何将“event_scheduler”保持为“ON”?

How to persist `event_scheduler` to be `ON` even if MySQL is restarted?

提问人:nakul 提问时间:11/21/2013 最后编辑:Super Kai - Kazuya Itonakul 更新时间:11/18/2023 访问量:119562

问:

即使MySQL重新启动,我也想坚持下去;我怎样才能做到这一点?event_schedulerON

SET GLOBAL event_scheduler = ON;
数据库 事件 调度程序 mysql-event

评论

0赞 Suleman Ahmad 11/21/2013
一种方法 - 您可以设置系统变量,并在需要时使用这些变量 (dev.mysql.com/doc/refman/5.0/en/using-system-variables.html)。

答:

4赞 Suleman Ahmad 11/21/2013 #1

一种方式 - 您可以设置系统变量,如果有可能重新启动 mysql,则可以使用这些变量。

这是链接 在mysql中使用系统变量

评论

3赞 mvmn 1/22/2016
“如果更改全局系统变量,则会记住该值并将其用于新连接,直到服务器重新启动。(要使全局系统变量设置永久化,应在选项文件中进行设置)”
49赞 prem 5/6/2014 #2

您可以设置

event_scheduler=ON

,然后重新启动服务器以使设置生效。my.inimy.cnf

一旦设置,无论您的服务器是否重新启动,都将始终保留。event_schedulerON

评论

1赞 cavpollo 11/5/2016
就我而言(Ubuntu 14.04.4 LTS),添加它就可以解决问题,而添加它什么也没做。/etc/mysql/my.cnf/etc/mysql/my.ini
1赞 Ananth 6/2/2017
在装有 MySQL 5.7 的 Windows 机器上,对我有用event-scheduler=on
4赞 AntonK 9/25/2018
确保将设置添加到正确的部分 - 它应该位于 .否则,服务器将无法启动...[mysqld]
0赞 Anse 2/26/2019
当然,您必须将其放入正确的文件中。我有两个文件,一个和一个.不知道为什么,但在安装过程中,后者是使用的那个。D:\MariaDB\my.iniD:\MariaDB\data\my.ini
0赞 Graph 1/14/2020
在 Amazon Linux AMI 映像上,它通过修改 /etc/my.cfg 文件来工作。谢谢!
3赞 Mark Bondurant 4/22/2015 #3

在我们的 Windows Server 2012 系统上,这些或任何其他解决方案都不起作用。然后我查看了启动的注册表项:

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56

诀窍,邪恶的,是.事实并非如此。查看程序文件,你会看到一个文件,放在那里只是为了把你搞砸。ProgramDataProgram Filesmy-default.ini

诀窍是在注册表中找到路径,这对我来说是:HKEY_LOCAL_MACHINE\SYSTEM\Services\MySQL56

31赞 Francesco Borzi 5/28/2015 #4

打开 /etc/mysql/my.ini 文件并添加:

event_scheduler = on

[mysqld] 部分下

(在 mysql 5.5.35-0+wheezy1 - Debian 下测试)

评论

3赞 RonEskinder 9/28/2016
在某些 linux 发行版中,该文件位于 /etc/my.cnf 下
1赞 Leopoldo Sanczyk 4/29/2017
对我来说是必要的,使用 MariaDB,按照建议在 [mysqld] 部分中包含该行。
0赞 Alpha2k 2/28/2018
/usr/local/etc/mysql 用于 FreeBSD
0赞 zypA13510 12/3/2019
使用 RHSCL 的 MariaDB,配置文件将位于 /etc/opt/rh/rh-mariadb103/my.cnf 中(将 103 更改为您的版本)
0赞 Leandro Bardelli 1/28/2021
对于MariaDB,请注意[mysqld]是必需的,并且不适用于[mysql],仅适用于[mysqld]。在 Raspbian 中测试
4赞 Roberts Lando 6/13/2017 #5
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 

在文件末尾添加以下行:

event_scheduler=ON

然后重新启动并检查重新启动后是否启动了守护进程:

登录到 mysql bash:

mysql -u <user> -p

然后运行命令:

SHOW PROCESSLIST;

现在,您应该在列表中看到事件调度程序守护程序

评论

0赞 Erik van Berkum 11/15/2018
这在 Ubuntu 16.04 中有效,我无法编辑 my.cnf 文件。
0赞 Super Kai - Kazuya Ito 11/18/2023 #6

event_scheduler(全局变量)是默认的,因此如果重新启动MySQL,则重置为。ONevent_schedulerON

但是,如果你想成为 (),即使 MySQL 重新启动,你也可以使用下面的 SQL 保持 ()。*在运行下面的 SQL 后立即应用更改,并且 () 可用于并且会话变量不存在,文档解释了如何持久化全局变量:event_schedulerOFF0event_schedulerOFF0event_schedulerON1event_schedulerevent_scheduler

SET PERSIST event_scheduler = OFF;

艺术

SET PERSIST event_scheduler = 0;

艺术

SET @@PERSIST.event_scheduler = OFF;

艺术

SET @@PERSIST.event_scheduler = 0;

此外,您可以禁用以下 SQL 以保留。*下面的 SQL 不会更改全局变量,文档解释了如何禁用持久化全局变量:event_schedulerevent_scheduler

RESET PERSIST event_scheduler;

而且,您可以使用下面的 SQL 显示持久变量。*文档解释表:event_schedulerpersisted_variables

SELECT * FROM performance_schema.persisted_variables WHERE VARIABLE_NAME = 'event_scheduler';