前言:

在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MySQL 参数,学习下如何管理维护 MySQL 参数。

1.MySQL参数概念

我们所说的参数在官方文档中称为 系统变量 (system variable),不同的变量有着不同的作用。 MySQL 服务端维护了许多表示其配置的系统变量,所有变量均有默认值。一般可以在启动命令行中或配置文件中对它们进行设置。

系统变量分为全局系统变量(global)和会话系统变量(session)。有些变量既有全局变量又有会话变量,有些变量只有全局变量。全局变量影响服务器的全局操作,会话变量只影响具体客户端连接相关操作。若会话变量未单独设置,则继承自相应全局变量。

MySQL 服务启动时,会按照配置文件或命令行中指定的选项来给全局变量赋值,没有指定则按默认值处理。服务启动后,通过连接服务器并执行 SET GLOBAL var_name 语句可以动态更改部分全局变量的值。要想更改全局变量,必须具有 SUPER 权限。 MySQL 还为每个客户端连接维护会话变量,连接时使用相应全局变量的当前值对客户端会话变量进行初始化。客户端可以通过 SET SESSION var_name 语句来动态更改会话变量。设置会话变量不需要特殊权限,但会话变量只作用于当前连接。

2.参数查询与变更示例

这里也要说明下,并不是所有的参数都可以动态修改,某些参数只能写入配置文件然后重启数据库才能生效。下面我们来展示下 MySQL 参数的查询与修改。

# 参数查询show global variables like 'var_name'; //查看全局系统变量的值,可使用%通配符show session variables like 'var_name'; //查看会话系统变量的值show     variables like 'var_name'; //优先返回会话系统变量,若会话系统变量不存在,则返回全局系统变量。# 也可用select查询某个特定参数select @@global.var_name; //全局系统变量select @@session.var_name; //会话系统变量select @@var_name; //优先会话系统变量# 查询示例mysql> show global variables like 'server_id';+---------------+---------+| Variable_name | Value  |+---------------+---------+| server_id   | 1003306 |+---------------+---------+1 row in set (0.00 sec)mysql> show global variables like 'log_bin%';+---------------------------------+-------------------------------+| Variable_name          | Value             |+---------------------------------+-------------------------------+| log_bin             | ON              || log_bin_basename        | /data/mysql/logs/binlog    || log_bin_index          | /data/mysql/logs/binlog.index || log_bin_trust_function_creators | ON              || log_bin_use_v1_row_events    | OFF              |+---------------------------------+-------------------------------+5 rows in set (0.00 sec)mysql> select @@server_id;+-------------+| @@server_id |+-------------+|   1003306 |+-------------+1 row in set (0.00 sec)# 动态修改参数set global var_name = value;set session var_name = value;set var_name = value;set @@global.var_name = value;set @@session.var_name = value;set @@var_name = value;# 参数修改示例mysql> set global sort_buffer_size = 2097152;Query OK, 0 rows affected (0.00 sec)mysql> set session sort_buffer_size = 4194304;Query OK, 0 rows affected (0.00 sec)mysql> select @@global.sort_buffer_size,@@session.sort_buffer_size;+---------------------------+----------------------------+| @@global.sort_buffer_size | @@session.sort_buffer_size |+---------------------------+----------------------------+|          2097152 |          4194304 |+---------------------------+----------------------------+1 row in set (0.00 sec)
vi /etc/my.cnf# 简单模板如下:[mysqld]user = mysql    datadir = /data/mysql/data        socket = /data/mysql/tmp/mysql.sockpid-file = /data/mysql/tmp/mysqld.pid  skip_name_resolve = 1max_connections = 2000lower_case_table_names = 1log_timestamps=SYSTEMmax_allowed_packet = 32M...

https://dev.mysql.com/doc/refman/5.7/en/server-system-variable-reference.html

总结:

本篇文章详细讲述了 MySQL 参数相关概念及查询更改方法,希望各位小伙伴能学到相关知识。

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. Python技巧匿名函数、回调函数和高阶函数
  3. python list.sort()根据多个关键字排序的方法实现
  4. android中文api(89)——ViewManager
  5. Android调用天气预报的WebService简单例子
  6. Android(安卓)Activity的启动
  7. MTK Android(安卓)Driver:led
  8. android 电容屏(二):驱动调试之基本概念篇
  9. 样式 主题 对话框 国际化

随机推荐

  1. XAMPP附带的mysql如何修改密码
  2. MySQL 转换函数与运算符
  3. MySQL数据库相关开发入门
  4. php&input复选框存储每个循环的值
  5. MySQL使用二进制日志来恢复数据
  6. windows下安装mysql5.6解压版,32位和64位
  7. Mysql的存储引擎之:MyISAM存储引擎
  8. Mysql基础之 基础知识解释
  9. 如何向mysql数据库添加多个映像?
  10. Sql查询性能限制行数之间的差异