MySQL系统变量

1. 设置不同作用范围的系统变量

set [global|session] 系统变量名 = 值;

set global default_storage_engine = MyISAM;

set session default_storage_engine = MyISAM;

如果在设置系统变量的时候省略了作用范围,默认的作用范围就是session

2. 查看不同作用范围的系统变量

show [global|session] variables [like 匹配的模式]

show global variables like 'default_storage_engine';

show session variables like 'default_storage_engine';
  1. 如果使用global修饰符,则显示全局系统变量的值,如果某个系统变量没有global作用范围,则不显示它
  2. 如果使用session修饰符,则显示针对当前连接有效的系统变量值,如果某个系统变量没有session作用范围,则显示global作用范围的值
  3. 如果没写修饰符,则与使用session修饰符效果一样

tips:

  1. 如果某个客户端改变了某个系统变量在global作用范围的值,并不会影响该系统变量在当前已经连接的客户端作用范围为session的值,只会影响后续连入的客户端作用范围为session的值

3. 注意事项

  1. 并不是所有的系统变量都具有global和session的作用范围,
  1. 有一些系统变量只具有global作用范围,比如max_connections,它表示服务器程序支持同时最多有多少个客户端程序进行连接
  2. 有一些系统变量只具有session作用范围,比如insert_id,它表示在对某个包含AUTO_INCREMENT列的表进行插入时,该列初始的值
  3. 有一些系统变量既有global作用范围,也有session作用范围,比如default_storage_engine, 而且大部分的系统变量都是这样的
  1. 有些系统变量是只读的,并不能设置值
  1. 比如version, 它表示当前mysql的版本,客户端不能设置它的值,只能在show variables语句中查看

4. 启动选项和系统变量的区别

  1. 启动选项是在程序启动时由用户传递的一些参数,而系统变量是影响服务器程序运行行为的变量,它们之间的关系如下
  1. 大部分的系统变量都可以当作启动参数传入
  2. 有些系统变量是在程序运行过程中自动生成的,不可以当作启动选项来设置,比如character_set_client
  3. 有些启动选项也不是系统变量, 比如defaults-file

参考资料:mysql是怎样运行的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值