mysql修改參數變數設定的一些方法總結

來源:互聯網
上載者:User


登陸mysql資料庫系統中,用show processlist分析查看當前運行狀態。

mysql> show processlist;

+—–+————-+——————–+

| Id | User | Host | db | Command | Time| State | Info

+—–+————-+——————–+

|207|root |192.168.0.2:51621 |mytest | Sleep | 5 | | NULL

|208|root |192.168.0.2:51622 |mytest | Sleep | 5 | | NULL

|220|root |192.168.0.2:51676 |mytest |Query | 84 | Locked |

 

一般情況下,在修改後my.cnf,需要重啟一下mysql才能讓這個參數生效。有人說,可以使用 /etc/init.d/mysqld  reload

但筆者reload後,再次查看變數的值依舊沒有改變。

下面是筆者的操作過程:

 代碼如下 複製代碼
mysql -uroot -psss@pas -e "show variables" |grep max_connection

結果為 max_connections 1024

修改my.cnf 使

 代碼如下 複製代碼

max_connections  2048

然後  /etc/init.d/mysqld  reload

 代碼如下 複製代碼
mysql -uroot -psss@pas -e "show variables" |grep max_connection

結果依然是 max_connections 1024

所以,筆者認為這樣做是不能線上修改mysql的配置參數的。於是

 代碼如下 複製代碼

mysql -uroot -psss@pas -e "set GLOBAL max_connections=2048"
mysql -uroot -psss@pas -e "show variables" |grep max_connection

結果為:

max_connections 2048

所以,使用命令 set  GLOBAL  變數名 變數值; 這樣就可以線上修改mysql的配置參數了

一些參考


1>修改全域變數

 代碼如下 複製代碼
[root@admin root]# mysql
mysql> show variables like ‘%sort_buffer_size%’;
+—————————+————+
| Variable_name | Value |
+—————————+————+
| sort_buffer_size | 6291448 |
+—————————+————+
1 rows in set (0.00 sec)

用set GLOBAL 命令設定全域變數

 代碼如下 複製代碼
mysql> set GLOBAL sort_buffer_size = 7000000;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like ‘%sort_buffer_size%’;
+—————————+————+
| Variable_name | Value |
+—————————+————+
| sort_buffer_size | 6291448 |
+—————————+————+
1 rows in set (0.00 sec)

當前此參數的值並不發生變化,先退出,然後重新連進去
mysql> exit
Bye
重新串連mysql資料庫

 代碼如下 複製代碼
[root@admin root]# mysql
mysql> show variables like ‘%sort_buffer_size%’;
+—————————+————+
| Variable_name | Value |
+—————————+————+
| sort_buffer_size | 7000000 |
+—————————+————+
1 rows in set (0.00 sec)

新的參數值生效
2>修改會話級變數
用show variables 命令查看當前參數的值,like ‘pattern’用於模式比對,尋找指定的參數

 代碼如下 複製代碼
mysql> show variables like ‘%sort_buffer_size%’;
+—————————+————+
| Variable_name | Value |
+—————————+————+
| sort_buffer_size | 6291448 |
+—————————+————+
1 rows in set (0.00 sec)

用set SESSION命令設定會話級變數的新值

 代碼如下 複製代碼
mysql> set SESSION sort_buffer_size=7000000;
Query OK, 0 rows affected (0.00 sec)

修改會話級變數對當前會話來說立刻生效

 代碼如下 複製代碼
mysql> show variables like ‘%sort_buffer_size%’;
+—————————+————+
| Variable_name | Value |
+—————————+————+
| sort_buffer_size | 7000000 |
+—————————+————+
1 rows in set (0.00 sec)
mysql> exit
Bye

退出重新串連後,此參數恢複原值

 代碼如下 複製代碼

[root@admin99 root]# mysql
mysql> show variables like ‘%sort_buffer_size%’;
+—————————+————+
| Variable_name | Value |
+—————————+————+
| sort_buffer_size | 6291448 |
+—————————+————+
1 rows in set (0.00 sec)


老外給了一個解決方案

 代碼如下 複製代碼

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
...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.