MySQL 参数介绍和设置

参数的分类

  • 全局参数: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)
    

MySQL参数设置有多种方式,具体如下: 1. 通过set命令设置参数: - 使用`set [session] 参数名 = 参数值;`来设置当前会话(连接)参数。这种方式会话断开后配置失效。 - 使用`set global 参数名 = 参数值;`来设置全局参数。这种方式需要MySQL实例重启后生效,配置也会在重启后失效。 - 注意,通过命令设置参数优先级高于配置文件,相同配置的命令执行后会覆盖配置值,但只在会话或MySQL实例中生效,不同步到配置文件中。 2. 通过配置文件设置参数: - 在Windows系统中,配置文件my.ini存放在MySQL安装的根目录下。 - 在Linux系统中,配置文件my.cnf存放在/etc目录下。 - 你可以编辑这些配置文件,在文件中设置参数值。这样每次启动MySQL实例时都会加载配置文件中的参数值。 3. Connection连接参数: - `max_connections`参数用于限制最大连接数。连接状态有两种:Sleep(连接处于闲置状态)/Query(连接正在处理任务的状态)。 - Sleep和Query状态的连接数之和不能超过`max_connections`的设置值,否则数据库会抛出异常“ERROR 1040: Too many connections”。 - 你可以使用`show VARIABLES like 'max_connections';`命令查看该参数的值。 以上是关于MySQL参数设置的一些方法和连接参数的说明。你可以根据具体需求选择适合的方式来进行参数设置。如果需要了解更多关于MySQL参数的信息,可以参考MySQL官方文档中的相关部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值