要修改mysql參數(shù)我們最常用的辦法是直接在my.cnf中進行修改然后重啟mysql,也可以使用命令方式直接修改而不需要重復(fù)mysql,但后者如果一重啟mysql設(shè)置的變量將無效了.
登陸mysql數(shù)據(jù)庫系統(tǒng)中,用show processlist分析查看當(dāng)前運行狀態(tài),代碼如下:
- 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才能讓這個參數(shù)生效,有人說,可以使用 /etc/init.d/mysqld reload,但筆者reload后,再次查看變量的值依舊沒有改變.
下面是筆者的操作過程,代碼如下:
mysql -uroot -psss@pas -e "show variables" |grep max_connection
結(jié)果為 max_connections 1024
修改my.cnf 使如下代碼:max_connections 2048.
然后 /etc/init.d/mysqld reload,代碼如下:
mysql -uroot -psss@pas -e "show variables" |grep max_connection
結(jié)果依然是 max_connections 1024,所以,筆者認為這樣做是不能在線修改mysql的配置參數(shù)的,于是代碼如下:
mysql -uroot -psss@pas -e "set GLOBAL max_connections=2048"
mysql -uroot -psss@pas -e "show variables" |grep max_connection
結(jié)果為:max_connections 2048
所以,使用命令 set GLOBAL 變量名 變量值,這樣就可以在線修改mysql的配置參數(shù)了.
一些參考
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 命令設(shè)置全局變量,代碼如下:
- 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)
當(dāng)前此參數(shù)的值并不發(fā)生變化,先退出,然后重新連進去.
mysql> exit
Bye
重新連接mysql數(shù)據(jù)庫,代碼如下:
- [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)
新的參數(shù)值生效.
2>修改會話級變量
用show variables 命令查看當(dāng)前參數(shù)的值,like ‘pattern’用于模式匹配,查找指定的參數(shù),代碼如下:
- mysql> show variables like ‘%sort_buffer_size%’;
- +—————————+————+
- | Variable_name | Value |
- +—————————+————+
- | sort_buffer_size | 6291448 |
- +—————————+————+
- 1 rows in set (0.00 sec) --Vevb.com
用set SESSION命令設(shè)置會話級變量的新值,代碼如下:
mysql> set SESSION sort_buffer_size=7000000;
Query OK, 0 rows affected (0.00 sec)
修改會話級變量對當(dāng)前會話來說立刻生效,代碼如下:
- mysql> show variables like ‘%sort_buffer_size%’;
- +—————————+————+
- | Variable_name | Value |
- +—————————+————+
- | sort_buffer_size | 7000000 |
- +—————————+————+
- 1 rows in set (0.00 sec)
- mysql> exit
- Bye
退出重新連接后,此參數(shù)恢復(fù)原值,代碼如下:
- [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
- ...
新聞熱點
疑難解答
圖片精選