MySQL中的变量相关问题

Posted sang915

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中的变量相关问题相关的知识,希望对你有一定的参考价值。

mysql中的变量可分为以下几种:

1、 MySQL系统变量:该类型变量反映了MySQL服务器是如何配置的。每一个系统变量都有一个默认值。系统变量可以在MySQL配置文件中进行设置,或使用MySQL启动选项进行设置。大多数系统变量都可以在MySQL运行时使用SET命令进行动态修改。
2、 MySQL状态变量:该类型变量反映了MySQL服务器的运行状态。
变量按作用范围可分为:

 1、 全局变量(global):对MySQL服务器全局生效。

 2、 会话变量(session):仅对单个客户端会话有影响。
有些MySQL选项只有全局变量或会话变量,而有些则同时有全局变量和会话变量。全局和会话变量的关联是这样的:
1、 当MySQL服务启动时,它会初始每一个全局变量为默认值。这个默认值可以在配置文件中或使用MySQL启动选项进行修改。
2、 MySQL也会为每一个客户端连接维护一个会话变量集。当客户端连接MySQL服务时,它所有的会话变量都会初始化为相应全局变量的当前值。对于少数系统变量,它的会话值可能不会被初始化为相应全局变量的值,具体可查询MySQL官方手册。
系统变量根据是否可动态修改(dynamic),分为:
动态变量:可动态修改变量的值。修改后无需重启MySQL服务即可生效。
非动态变量:不可动态修改变量的值。修改后需重启MySQL服务才可生效。
完整的变量属性列表可以在MySQL参考手册中查询得到。比如,可以了解到某一个变量是系统变量还是状态变量,是全局变量还是还是变量还是两种都有,是动态变量还是非动态变量。
查看变量的值
要查看MySQL的所有默认系统变量值(忽略配置文件中的设置),使用命令:
[[email protected] ~]# mysqld --no-defaults --verbose --help
要查看MySQL的所有默认系统变量值(读取配置文件中的设置后的),使用命令:
[[email protected] ~]# mysqld --verbose --help
SHOW命令查看系统变量的值,语法格式为:

mysql> SHOW [GLOBAL | SESSION] VARIABLES [like_or_where]

当使用关键字GLOBAL时,是查看所有全局变量的当前值:

mysql> SHOW GLOBAL VARIABLES;

当不使用关键字或使用关键字SESSION时,是查看所有会话变量的当前值(有会话变量的则显示当前会话变量的值,没有的则显示全局变量的值):

mysql> SHOW VARIABLES;

mysql> SHOW SESSION VARIABLES;

可以加上LIKE语句并使用通配符 % 或 _ 来匹配特定的变量。百分号 % 匹配任意数量字符,下划线 _ 匹配单个字符。示例:

mysql> SHOW VARIABLES LIKE ‘innodb_buffer%‘;

mysql> SHOW GLOBAL VARIABLES LIKE ‘innodb_buffer%‘;

 

另外,也可以使用 SELECT 语句来查看系统变量的值。比如:

mysql> SELECT @@global.sql_mode, @@session.sql_mode, @@sql_mode;

对于在表达式中使用 @@var_name 这种形式引用变量的值(而不是使用 @@global. 或 @@session.),MySQL会返回会话变量的值(如果存在),否则会返回全局变量的值。有 @@global. 前缀的是显式指定查看全局变量的值,有 @@session. 前缀的是显式指定查看会话变量的值。

















































以上是关于MySQL中的变量相关问题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL各类日志文件相关变量介绍

使用 php 变量创建动态 mysql 查询

MYSQL变量和状态

MySQL存储过程相关指令和函数集

为啥在 MySQL 中的变量前使用 @? [复制]

mysql相关问题