MySQL入门–设置session,global变量的方法


mysql设置session,global变量的方法

设置或修改系统日志有效期

SET GLOBAL expire_logs_days=8;

SHOW VARIABLES LIKE ‘%expire_logs_days%’;

设置或修改系统最大连接数

SET GLOBAL max_connections = 2648;

SHOW VARIABLES LIKE ‘%max_connections%’;

修改MYSQL自动编号步长

SHOW VARIABLES LIKE ‘%auto_increment%’;

SET GLOBAL auto_increment_offset = 1;

SET GLOBAL auto_increment_increment = 1;

比如设置MySQL实例参数wait_timeout10.

1) 设置全局变量方法1(不推荐): 修改参数文件, 然后重启mysqld

# vi /etc/my.cnf

[mysqld]

wait_timeout=10

# service mysqld restart

不过这个方法太生硬了, 线上服务重启无论如何都应该尽可能避免.

2) 设置全局变量方法2(推荐): 在命令行里通过SET来设置, 然后再修改参数文件

如果要修改全局变量, 必须要显示指定“GLOBAL”或者“@@global.”, 同时必须要有SUPER权限.

mysql> set global wait_timeout=10;

or

mysql> set @@global.wait_timeout=10;

然后查看设置是否成功:

mysql> select @@global.wait_timeout=10;

or

mysql> show global variables like
‘wait_timeout’;

+—————+——-+

| Variable_name | Value |

+—————+——-+

| wait_timeout | 10
|

+—————+——-+

如果查询时使用的是show variables的话, 会发现设置并没有生效, 除非重新登录再查看. 这是因为使用show variables的话就等同于使用show session variables, 查询的是会话变量, 只有使用show
global variables
查询的才是全局变量. 如果仅仅想修改会话变量的话, 可以使用类似set wait_timeout=10;或者set session wait_timeout=10;这样的语法.

当前只修改了正在运行的MySQL实例参数, 但下次重启mysqld又会回到默认值, 所以别忘了修改参数文件:

# vi /etc/my.cnf

[mysqld]

wait_timeout=10

3) 设置会话变量方法: 在命令行里通过SET来设置开发云主机域名

如果要修改会话变量值, 可以指定“SESSION”或者“@@session.”或者“@@”或者“LOCAL”或者“@@local.”, 或者什么都不使用.

mysql> set wait_timeout=10;

or

mysql> set session wait_timeout=10;

or

mysql> set local wait_timeout=10;

or

mysql> set @@wait_timeout=10;

or

mysql> set @@session.wait_timeout=10;

or

mysql> set @@local.wait_timeout=10;

然后查看设置是否成功:

mysql> select @@wait_timeout;

or

mysql> select @@session.wait_timeout;

or

mysql> select @@local.wait_timeout;

or

mysql> show variables like ‘wait_timeout’;

or

mysql> show local variables like
‘wait_timeout’;

or

mysql> show session variables like
‘wait_timeout’;

+—————+——-+

| Variable_name | Value |

+—————+——-+

| wait_timeout | 10
|

+—————+——-+

4) 会话变量和全局变量转换方法: 在命令行里通过SET来设置

将会话变量值设置为对应的全局变量值呢:

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

将会话变量值设置为MySQL编译时的默认值(wait_timeout=28800):

mysql> set wait_timeout=DEFAULT;

这里要注意的是, 并不是所有的系统变量都能被设置为DEFAULT, 如果设置这些变量为DEFAULT则会返回错误.

–end—

参考文献:

1MySQLGlobalSessionBoth(Global & Session)范围的DynamicNot Dynamic类型的变量的作用范围和设置方法,http://blog.csdn.net/zyz511919766/article/details/13294479

2MySQL 里设置或修改系统变量的几种方法,

http://wenku.baidu.com/link?url=wvLTvtJv-B-YHLfaaCYANwq0ieBf5TDonJtXx-2cJgXI0jIhr3n_1yn4c60TnbiEBiE7F9ttv6VxpWRRwFbhY7xX3aoV75VWaw2htrCqh7m

相关推荐: MySQL:COUNT(*) profile optimizing阶段慢

简单记录一下,以供后面分析 一个朋友@问心问我为什么在optimizing 阶段会慢 因为优化器部分没有怎么仔细看过但记录了一些阶段的调入接口 所以还是比较奇怪 放朋友打印了一下栈帧才发现问题,居然c开发云主机域名ount(*)的实际数据访问阶段提前了如下: …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 06/05 17:34
Next 06/05 17:35

相关推荐