我必须configuration一个Mysql服务器充当复制主。
我修改my.cnf来激活二进制日志,但现在为了重新加载configuration,我必须用/etc/init.d/mysqld restart重新加载服务。 问题是服务器每秒收到几个查询,我不想丢失可能到达的所有数据。
有没有办法重新加载configuration文件my.cnf而不重新启动服务?
谢谢。
MySQL具体:
my.cnf中的选项是系统variables 。 这些variables是dynamic的(可以在运行时改变)或者不dynamic的。 那些dynamic的,可以在运行时用SETvariables语法来修改。 您可以使用SHOW VARIABLES;
查看SHOW VARIABLES;
。 但是根据手册中的这个链接 ,二进制日志选项不是dynamic的。 所以看起来你必须重新启动。 你可能想等待知道mysql的人比我自己好一点,但是要确认一下。
一般的守护进程:
在Linux中,/etc/init.d/包含启动和停止守护进程(服务)的脚本。 由于这些是脚本,您可以使用文本编辑器查看它们。 这些脚本中的许多脚本都会重载参数。 看着我的mysql脚本,重新加载作为参数使用mysqladmin命令。 所以重装下的mysqladmin手册说:
重装
Reload the grant tables.
所以看起来像一般来说,这不是用于configuration更改,而是更改权限(也许是等效的flush privileges命令?)。
我一直在寻找这个解决scheme,但不满意的有限帮助,我发现。 一个人提供了杀-HUP ..没有为我工作..
我所做的就是暂停apache的实例..然后继续他们..工作就像一个服务器上的魅力,我平均每秒25个活动请求。
用sudo(显然)pkill -STOP httpd && /etc/init.d/mysqld restart && pkill -CONT httpd
ofcourse您的Apache进程名称和/或MySQL重新启动脚本可能会有所不同,但你的想法是正确的!