博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不重启mysql情况修改参数变量
阅读量:5159 次
发布时间:2019-06-13

本文共 1133 字,大约阅读时间需要 3 分钟。

地球人都知道,更新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
...

转载于:https://www.cnblogs.com/huidaoli/p/3232265.html

你可能感兴趣的文章
C语言基础课程 第三课 ADB(Android Debug Bridge)的使用
查看>>
C/C++程序员面试大纲
查看>>
物联网能否落地?可裁剪嵌入式OS成关键
查看>>
第一阶段冲刺09
查看>>
深入理解Java中的final关键字
查看>>
在JavaScript中引用类型和值类型的区别
查看>>
机器学习 —— 概率图模型(马尔科夫与条件随机场)
查看>>
python-多线程-25
查看>>
Double类型的数据四舍五入保留小数点后两位
查看>>
NESTED LOOPS & HASH JOIN & SORT MERGE JOIN
查看>>
Oracle实例和Oracle数据库(Oracle体系结构)---转载
查看>>
软件业人才结构
查看>>
log4j.properties配置模板
查看>>
C# 拼接字符串的几种方式和性能
查看>>
Linux文件系统挂载管理
查看>>
Java路径
查看>>
Android Webview中解决H5的音视频不能自动播放的问题
查看>>
Android微信SDK API 调用教程【转】
查看>>
Android开发优化之——对Bitmap的内存优化
查看>>
最近的工作感悟
查看>>