MySQL 数据库服务运行中,服务提供查询和修改系统变量的功能;方便我们查看服务当前的配置变量和优化服务运行情况。MySQL 服务也提供查看当前服务运行的状态变量功能。
一、系统变量的操作
SHOW [GLOBAL | SESSION] VARIABLES
[LIKE 'pattern' | WHERE expr]
SHOW VARIABLES显示MySQL系统变量的值。这个声明不需要任何特权。它只需要连接到服务器的能力。
1.1、系统变量获取方式
系统变量信息也可以从这些来源获得:
1、Performance Schema tables
2、在 GLOBAL_VARIABLES 与 SESSION_VARIABLES 表
3、The mysqladmin variables command
1.2、查看和设置系统变量
show global variables;
show [session] variables;
全局:
set global system_var_name=value;
set @@global.system_var_name=value;
会话:
set [session] system_var_name=value;
set @@[session.]system_var_name=value;
1.3、SHOW VARIABLES使用说明
SHOW VARIABLES 接受一个可选GLOBAL或SESSION 可变范围修饰符:
1、使用GLOBAL修饰符,该语句显示全局系统变量值。这些是用于初始化与MySQL的新连接的相应会话变量的值。如果变量没有全局值,则不显示任何值。
2、使用SESSION修饰符,该语句显示当前连接有效的系统可变值。如果变量没有会话值,则显示全局值。LOCAL是一个同义词SESSION。
3、如果不存在修饰符,则默认为 SESSION。
1.4、补充
SHOW VARIABLES受限于版本相关的显示宽度限制。对于非常长的值未完全显示的变量,请 SELECT作为解决方法。例如:
SELECT @@GLOBAL.innodb_data_file_path;
二、状态变量的操作
SHOW [GLOBAL | SESSION] STATUS
[LIKE 'pattern' | WHERE expr]
SHOW STATUS提供服务器状态信息。这个声明不需要任何特权。它只需要连接到服务器的能力。
2.1、状态变量获取方式
状态变量信息也可以从这些来源获得:
1、Performance Schema tables
2、在 GLOBAL_STATUS 与 SESSION_STATUS 表
3、在中mysqladmin扩展状态命令
2.2、SHOW STATUS使用说明
SHOW STATUS 接受一个可选 GLOBAL或SESSION可变范围修饰符:
1、使用GLOBAL修饰符,该语句显示全局状态值。全局状态变量可以表示服务器本身的一些方面(例如Aborted_connects)的状态,或者表示到MySQL的所有连接(例如Bytes_received和 Bytes_sent)的聚合状态。如果变量没有全局值,则显示会话值。
2、使用SESSION修饰符,该语句显示当前连接的状态变量值。如果变量没有会话值,则显示全局值。LOCAL是一个同义词SESSION。
3、如果不存在修饰符,则默认为 SESSION。