即使MySQL重启,如何保持`event_scheduler`为`ON`?

问题描述 投票:0回答:6

即使 MySQL 重启,我也想坚持

event_scheduler
ON
;我怎样才能实现这个目标?

SET GLOBAL event_scheduler = ON;
mysql database events scheduler mysql-event
6个回答
49
投票

可以设置

event_scheduler=ON

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

一旦设置,

event_scheduler
将始终保持
ON
,无论您的服务器是否重新启动。


31
投票

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

event_scheduler = on

[mysqld] 部分下

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


4
投票

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

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


4
投票
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 

在文件末尾添加此行:

event_scheduler=ON

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

登录mysql bash:

mysql -u <user> -p

然后运行命令:

SHOW PROCESSLIST;

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


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

诡计、邪恶就是

ProgramData
。这不是
Program Files
。查看程序文件,您会看到一个
my-default.ini
文件,放在那里只是为了彻底搞砸您。

诀窍是在注册表中找到路径,这对我来说是:

HKEY_LOCAL_MACHINE\SYSTEM\Services\MySQL56


0
投票

event_scheduler(全局变量)默认为

ON
,因此如果重新启动 MySQL,
event_scheduler
将重置为
ON

但是,如果您希望即使MySQL重新启动,

event_scheduler
仍为
OFF
,您可以使用以下SQL将
event_scheduler
保留为
OFF
。 *文档解释了如何保存全局变量:

SET PERSIST event_scheduler = OFF;
SET @@PERSIST.event_scheduler = OFF;

此外,您可以禁用

event_scheduler
来持久化下面的 SQL。 *下面的 SQL 不会更改
event_scheduler
的值,并且 文档 解释了如何禁用全局变量:

RESET PERSIST event_scheduler;
© www.soinside.com 2019 - 2024. All rights reserved.