https://www.cnblogs.com/huidaoli/p/3232265.html
從策劃到設計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿網(wǎng)站建設、網(wǎng)站策劃、網(wǎng)頁設計、域名注冊、網(wǎng)頁空間、網(wǎng)絡營銷、VI設計、 網(wǎng)站改版、漏洞修補等服務。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。
地球人都知道,更新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 |
看到了吧?報錯了!
后來查了一下資料,發(fā)現(xiàn)有一個叫gdb的東西,感覺相當牛X,可以實現(xiàn)在線更改mysql參數(shù),請看例子:
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) |
但是在一些可重復的參數(shù),不能直接用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 ... |
=========================================================================
mysql很多參數(shù)都需要重啟才能生效,有時候條件不允許,可以使用gdb作為最后的手段
先看看修改之前
mysql> show global variables like '%connection%';
+--------------------------+-------------------+
| Variable_name | Value |
+--------------------------+-------------------+
| character_set_connection | latin1 |
| collation_connection | latin1_swedish_ci |
| max_connections | 151 |
| max_user_connections | 0 |
+--------------------------+-------------------+
4 rows in set (0.01 sec)
使用gdb來修改
[root@asm ~]# gdb -p $(pidof mysqld) -ex "set max_connections=1500" -batch
其他的參數(shù)可以相應的修改
再查看當前的配置
mysql> show global variables like '%connection%';
+--------------------------+-------------------+
| Variable_name | Value |
+--------------------------+-------------------+
| character_set_connection | latin1 |
| collation_connection | latin1_swedish_ci |
| max_connections | 1500 |
| max_user_connections | 0 |
+--------------------------+-------------------+
4 rows in set (0.00 sec)
可以看出修改成功了,不過使用gdb有風險,特別是生產(chǎn)環(huán)境,有可能導致進程down掉,僅作為最后手段使用.