不重啟mysql情況修改引數變數
https://www.cnblogs.com/huidaoli/p/3232265.html
地球人都知道,更新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
... |
=========================================================================
mysql很多引數都需要重啟才能生效,有時候條件不允許,可以使用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
其他的引數可以相應的修改
再檢視當前的配置
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有風險,特別是生產環境,有可能導致程式down掉,僅作為最後手段使用.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2654937/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何在不重新啟動phantomjs的情況下修改HTTP代理?JSHTTP
- react路由引數改變不重新渲染頁面React路由
- 【勝通 】mysql的引數變數MySql變數
- Swift 1.1語言函式引數的特殊情況本地引數名外部引數名Swift函式
- mysql 引數修改 一例MySql
- Java String作為引數的情況Java
- BASH_SUBSHELL 變數不生效的情況變數
- 在不重灌Windows情況Ç(轉)Windows
- kettle 引數——變數引數和常量引數變數
- 引數和變數變數
- 關於變數與‘=’賦值的情況出錯變數賦值
- 修改linux下mysql環境變數LinuxMySql變數
- 可以看一下引數情況,分析一下
- Docker(十七)-修改Docker容器啟動配置引數Docker
- 【MySql】修改max_connections引數的方法MySql
- mysql的日誌引數修改的問題.MySql
- 【MySql】修改max_connections 引數的方法MySql
- Bash變數和引數變數
- Mysql 引數MySql
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- MySQL 5.6所有系統變數(系統引數)MySql變數
- linux引數修改Linux
- mybatis sql foreach 引數的傳入的三種情況!!MyBatisSQL
- linux不重啟的情況接受新的分割槽表資訊partprobeLinux
- python變數和引數Python變數
- 從不繫結變數與繫結變數兩種情況討論柱狀圖的作用變數
- iOS可變引數(不定引數)的用法iOS
- 【VMware vCenter】在不重啟的情況下重置vCenter Server的root密碼。Server密碼
- Oracle動態、靜態引數引數修改規則Oracle
- Swift學習筆記(三十三)——常量引數,變數引數和inout引數Swift筆記變數
- Oracle引數修改小結Oracle
- Mysql匯入大表檔案時注意修改引數MySql
- 查詢hadoop引數變數Hadoop變數
- 變數轉化為判斷條件時的各種情況變數
- 【Java】可變引數Java
- Swift: 可變引數Swift
- Java可變引數Java
- Java 可變引數Java