重新加载 my.cnf 而不重启 MySQL 服务

Dav*_*art 27 mysql replication

我必须配置一个 MySQL 服务器来充当复制主机。

我修改了 my.cnf 以激活二进制日志,但现在为了重新加载配置,我必须使用/etc/init.d/mysqld restart. 问题是服务器每秒收到几个查询,我不想丢失同时到达的所有数据。

有没有办法在不重启服务的情况下重新加载配置文件my.cnf?

Kyl*_*ndt 29

MySQL 具体:
my.cnf 中的选项是系统变量。这些变量要么是动态的(可以在运行时更改),要么不是动态的。动态的可以在运行时使用 SET 变量语法进行更改。您可以使用 来查看变量SHOW VARIABLES;。但是根据手册中的这个链接,二进制日志选项不是动态的。所以看起来你必须重新启动。但是,您可能想等待比我更了解 mysql 的人来确认这一点。

一般守护进程:
在 Linux 中,/etc/init.d/ 包含启动和停止守护进程(服务)的脚本。由于这些是脚本,您可以使用文本编辑器查看它们。许多这些脚本将采用重新加载参数。查看我的 mysql 脚本,重新加载作为参数使用 mysqladmin 命令。所以重载下mysqladmin的手册说:

重新加载

Reload the grant tables.
Run Code Online (Sandbox Code Playgroud)

所以看起来一般来说,这不是针对配置更改,而是针对权限的更改(也许是等效的刷新权限命令?)。

  • 还值得一提的是,当您选择 MySQL 版本时,哪些变量是动态变化的。例如,在 5.x 中,您可以即时启用慢速查询日志,但在 4.x 中则不能(正如我昨天发现的!)。 (4认同)
  • 嘿,很好的解释。不过,似乎没有办法在不重启的情况下做到这一点。如果没有人回答解决方案或解决方法,我会接受您的问题。谢谢你。 (2认同)