mysql修改变量参数和查询状态参数

时间:2024-05-20 16:38:38

使用官方文档来参考Mysql的参数(变量参数、状态参数)

  1. 名字
  2. 作用
  3. 修改值的范围、单位、类型、默认值、作用域
  4. 修改之后会影响所有用户还是只影响当前会话
  5. 参数修改完之后,是否需要重启数据库才能生效

 

官方文档查看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 |

+-----------+mysql修改变量参数和查询状态参数