Home  >  Article  >  Database  >  不重启mysql情况修改参数变量_MySQL

不重启mysql情况修改参数变量_MySQL

WBOY
WBOYOriginal
2016-06-01 13:32:13843browse

bitsCN.com

地球人都知道,更新mysql配置my.cnf需要重启mysql才能生效,但是有些时候mysql在线上,不一定允许你重启,这时候应该怎么办呢?

看一个例子:

1 2 3 4 5 6 7 8 9 10 mysql> show variables like 'log_slave_updates'; +-------------------+-------+ | Variable_name     | Value | +-------------------+-------+ | log_slave_updates | OFF   | +-------------------+-------+ 1 row in set (0.00 sec)   mysql> set global log_slave_updates=1; ERROR 1238 (HY000): Variable 'log_slave_updates' is a read only variable

看到了吧?报错了!

后来查了一下资料,发现有一个叫gdb的东西,感觉相当牛X,可以实现在线更改mysql参数,请看例子:

1 2 3 4 5 6 7 8 mysql> system gdb -p $(pidof mysqld) -ex "set opt_log_slave_updates=1" -batch mysql> show variables like 'log_slave_updates'; +-------------------+-------+ | Variable_name     | Value | +-------------------+-------+ | log_slave_updates | ON    | +-------------------+-------+ 1 row in set (0.00 sec)

但是在一些可重复的参数,不能直接用set更改,那这时候又要怎么办呢?老外给了一个解决方案:

1 2 3 4 5 6 7 8 9 10 mysql> show slave status /G ...      Replicate_Do_DB: test ... mysql> system gdb -p $(pidof mysqld)           -ex 'call rpl_filter->add_do_db(strdup("hehehe"))' -batch mysql> show slave status /G ...       Replicate_Do_DB: test,hehehe ... bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn