MySQL 参数设置

概述

mysql的参数可以分为两类:

  • 动态参数,数据库启动期间能被修改,而修改又分为两种(global级,session级)。
  • 静态参数,即数据库启动期间不能修改。

接下来利用参数wait_timeout介绍参数的一些操作,注意wait_timeout的值还受interactive_timeout的影响,先不管这些了,只是介绍操作

一、参数的查看

1.1 查看global级参数

mysql> select @@global.wait_timeout;
mysql> show global variables like ‘wait_timeout’;
mysql> select * from performance_schema.global_variables where variable_name =‘wait_timeout’;

1.2 查看session级参数

(session可以用local替代,后面同)
mysql> select @@wait_timeout;
mysql> select @@session.wait_timeout;
mysql> show variables like ‘wait_timeout’;
mysql> show session variables like ‘wait_timeout’;
mysql> select * from performance_schema.session_variables where variable_name =‘wait_timeout’;

注意:对于静态参数,没有global级和session级区分,因为这种参数global级和session级是一样的,用以上任意一种方法均可。

二、参数的修改

2.1 session级参数的修改

mysql> set wait_timeout=10;
mysql> set session wait_timeout=10;
mysql> set @@wait_timeout=10;
mysql> set @@session.wait_timeout=10;

2.2 global级参数的修改

mysql> set global wait_timeout=10;
mysql> set @@global.wait_timeout=10;

global级参数的修改注意事项:

  • 修改需要super权限
  • show variables会发现参数并没有生效,这是因为set global只改了global级的参数,只对重新打开的会话生效。
    如果想修改已经打开的会话的参数,需要执行set wait_timeout=10。

2.3 session级参数和global级参数转换方法

将session级参数值设置为global级参数值
mysql> set @@session.wait_timeout=@@global.wait_timeout;

将global级参数值设置为session级参数值
mysql> set @@global.wait_timeout=@@session.wait_timeout;

2.4 将参数值设置为MySQL编译时的默认值

session级
mysql> set wait_timeout=DEFAULT;

global级
mysql> set global wait_timeout=DEFAULT;

注意:并不是所有的动态参数都能被设置为DEFAULT

2.5 永久生效和静态参数修改

2.1~2.4所提供的修改动态参数的方法并不是永久的,随着数据库关闭而消失。如果需要永久生效,就应该修改参数文件并重启生效。

vi /etc/my.cnf

[mysqld]
wait_timeout=10

静态参数的修改也只能通过修改参数文件,如在数据库中修改静态参数会报以下错误
(root@localhost)[performance_schema]> set global datadir=’/db/mysql’;
ERROR 1238 (HY000): Variable ‘datadir’ is a read only variable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值