加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql修改参数变量设置的一些方法总结

发布时间:2022-06-18 09:08:04 所属栏目:MySql教程 来源:互联网
导读:要修改mysql参数我们最常用的办法是直接在my.cnf中进行修改然后重启mysql,也可以使用命令方式直接修改而不需要重复mysql,但后者如果一重启mysql设置的变量将无效了. 登陆mysql数据库系统中,用show processlist分析查看当前运行状态,代码如下: mysql show pro
  要修改mysql参数我们最常用的办法是直接在my.cnf中进行修改然后重启mysql,也可以使用命令方式直接修改而不需要重复mysql,但后者如果一重启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"
 
  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) --phpfensi.com
  用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  
  ...
 

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读