MySQL 参数介绍和设置

本文深入解析MySQL中的参数分类,包括全局参数与会话参数的区别,如何查看及设置参数,以及参数的持久化问题。特别关注了非只读参数的在线修改与重启后的效果,对比了全局与会话级别的autocommit参数的设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数的分类

  • 全局参数:GLOBAL
    • 可修改参数
    • 不可修改参数
  • 会话参数:SESSION
    • 可修改参数
    • 不可修改参数

1: 用户可在线修改非只读参数只读参数只能预先在配置文件中进行设置,通过重启数据库实例,方可生效。

2: 所有的在线修改过的参数(GLOBAL/SESSION),在重启后,都会丢失,不会写如my.cnf,无法将修改进行持久化

3: 有些参数,即存在于GLOBAL又存在于SESSION, 比如autocommit (PS:MySQL默认是提交的)

1. 查看参数

mysql> show variables; # 显示当前mysql的所有参数,且无隐藏参数
mysql> show variables like "max_%"; #查以max_开头的变量

2. 设置参数

  • 设置全局(GLOBAL)参数

    mysql> set global slow_query_log = off; #不加global,会提示错误
                                            #slow_query_log是全局参数
    
    mysql> set slow_query_log = off;  # 下面就报错了,默认是会话参数
    ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL
    
  • 设置会话(SESSION)参数

    mysql> set autocommit = 0;  # 当前会话生效
    # 或者
    mysql> set session autocommit = 0;  # 当前会话生效
    

    autocommit同样在GLOBAL中, 也有同样的参数

    mysql> set global autocommit = 1; #当前实例,全局生效
    

    注意:如果这个时候/etc/init.d/mysqld restart, 则全局的autocommit的值会变成默认值,或者依赖于my.cnf的设置值。

    执行的效果如下:

    mysql> show variables like "slow%"; # 原值为ON
    +---------------------+----------+
    | Variable_name       | Value    |
    +---------------------+----------+
    | slow_launch_time    | 2        |
    | slow_query_log      | OFF      |
    | slow_query_log_file | slow.log |
    +---------------------+----------+
    3 rows in set (0.00 sec)
    
    mysql> select @@session.autocommit; # 等价于 slect @@autocomit;
    +----------------------+
    | @@session.autocommit |
    +----------------------+
    |                    0 |
    +----------------------+
    1 row in set (0.00 sec)
    
    mysql> select @@global.autocommit;       
    +---------------------+
    | @@global.autocommit |
    +---------------------+
    |                   1 |
    +---------------------+
    1 row in set (0.00 sec)
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值