使用官方文档来参考Mysql的参数(变量参数、状态参数)
- 名字
- 作用
- 修改值的范围、单位、类型、默认值、作用域
- 修改之后会影响所有用户还是只影响当前会话
- 参数修改完之后,是否需要重启数据库才能生效
官方文档查看Server Option and Variable Reference,
Name | Cmd-Line | Option File | System Var | Status Var | Var Scope | Dynamic |
Cmd-Line:代表参数是否可以出现在mysqld_safe后面以(--参数=值)启动来让参数生效
Option File:代表参数可以出现在配置文件中(参数=值)来让参数生效
System Var:可认为是变量参数,通过修改该参数的值影响系统的运行
status Var:不是用来修改的,是系统启动之后,代表系统的运行状态
Var Scope:
对于状态参数来说:
- Global:在show status时,只能看到Global级别
- Session:在show status时,只能看到Session级别
- Both:可以看到show global/session status
- Syntax:
SHOW [GLOBAL | SESSION] STATUS
[LIKE 'pattern' | WHERE expr]
对于变量参数来说:
- Global:修改参数时,只影响Global级别
- Session:修改参数时,只影响Session级别
- Both:修改参数时,Global个Session级别都影响(对于Global,需要重新登录才会影响)
- SHOW [GLOBAL | SESSION] VARIABLES
[LIKE 'pattern' | WHERE expr]
举例:autocommit变量参数
autocommit | Yes | Yes | Yes | Both | Yes |
set @@session.autocommit=0;/set session autocommit=0;
set @@global.autocommit=0;/set global autocommit=0;
SET variable_assignment [, variable_assignment] ...
variable_assignment:
user_var_name = expr
| [GLOBAL | SESSION]
system_var_name = expr
| [@@global. | @@session. | @@]
system_var_name = expr
Dynamic(动态):
- Yes:改了参数值之后,不需要重新启动数据库(但是对于Global来说,当前在线的会话每个会话需要重新连接一下),但是动态参数重启之后还是会失效(方法:写入配置文件中)
- No:修改参数之后,需要重新启动数据库才能生效(datadir)
- Varies:根据数据库版本的不同,会发生改变(越来越倾向于可以动态修改的变量参数)
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.15 |
+-----------+