mysql修改参数变量设置的一些方法总结
登陆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" 结果为: 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 slave status G |