The variables_info
表显示每个系统变量最近设置的来源及其值的范围。
The variables_info
表包含以下列
VARIABLE_NAME
变量名称。
VARIABLE_SOURCE
最近设置变量的来源
COMMAND_LINE
变量在命令行上设置。
COMPILED
变量具有其编译的默认值。
COMPILED
是用于未以任何其他方式设置的变量的值。DYNAMIC
变量在运行时设置。 这包括使用
init_file
系统变量在文件中设置的变量。EXPLICIT
变量从使用
--defaults-file
选项命名的选项文件中设置。EXTRA
变量从使用
--defaults-extra-file
选项命名的选项文件中设置。GLOBAL
变量从全局选项文件中设置。 这包括不包含在
EXPLICIT
、EXTRA
、LOGIN
、PERSISTED
、SERVER
或USER
中的选项文件。LOGIN
变量从特定于用户的登录路径文件 (
~/.mylogin.cnf
) 中设置。PERSISTED
变量从特定于服务器的
mysqld-auto.cnf
选项文件中设置。 如果服务器启动时persisted_globals_load
被禁用,则没有行具有此值。SERVER
变量从特定于服务器的
选项文件中设置。 有关设置$MYSQL_HOME
/my.cnfMYSQL_HOME
的详细信息,请参见 第 6.2.2.2 节,“使用选项文件”。USER
变量从特定于用户的
~/.my.cnf
选项文件中设置。
VARIABLE_PATH
如果变量从选项文件中设置,则
VARIABLE_PATH
是该文件的路径名。 否则,该值为一个空字符串。MIN_VALUE
变量允许的最小值。 对于类型不是数字的变量,此值始终为 0。
此列在 MySQL 9.0 中已弃用,并且将在将来的版本中删除;改为使用
variables_metadata
表的MIN_VALUE
列获取此信息。MAX_VALUE
变量允许的最大值。 对于类型不是数字的变量,此值始终为 0。
此列在 MySQL 9.0 中已弃用,并且将在将来的版本中删除;改为使用
variables_metadata
表的MAX_VALUE
列获取此信息。SET_TIME
最近设置变量的时间。 默认值为服务器在启动期间初始化全局系统变量的时间。
SET_USER
,SET_HOST
最近设置该变量的客户端用户的用户名和主机名。 如果客户端以
user17
从主机host34.example.com
使用帐户'user17'@'%.example.com
连接,SET_USER
和SET_HOST
分别为user17
和host34.example.com
。 对于代理用户连接,这些值对应于外部(代理)用户,而不是执行权限检查的代理用户。 每个列的默认值为空字符串,表示自服务器启动以来未设置该变量。
variables_info
表没有索引。
TRUNCATE TABLE
不允许用于 variables_info
表。
如果在运行时设置了 VARIABLE_SOURCE
值不为 DYNAMIC
的变量,则 VARIABLE_SOURCE
变成 DYNAMIC
,VARIABLE_PATH
变成空字符串。
仅具有会话值的系统变量(如 debug_sync
)无法在启动时设置或持久化。 对于仅会话的系统变量,VARIABLE_SOURCE
只能为 COMPILED
或 DYNAMIC
。
如果系统变量具有意外的 VARIABLE_SOURCE
值,请考虑您的服务器启动方法。 例如,mysqld_safe 读取选项文件并将其中找到的某些选项作为启动 mysqld 所使用的命令行的一部分传递。 因此,您在选项文件中设置的某些系统变量可能在 variables_info
中显示为 COMMAND_LINE
,而不是像您预期的那样显示为 GLOBAL
或 SERVER
。
一些使用 variables_info
表的示例查询,以及代表性输出
显示在命令行上设置的变量
mysql> SELECT VARIABLE_NAME FROM performance_schema.variables_info WHERE VARIABLE_SOURCE = 'COMMAND_LINE' ORDER BY VARIABLE_NAME; +---------------+ | VARIABLE_NAME | +---------------+ | basedir | | datadir | | log_error | | pid_file | | plugin_dir | | port | +---------------+
显示从持久存储中设置的变量
mysql> SELECT VARIABLE_NAME FROM performance_schema.variables_info WHERE VARIABLE_SOURCE = 'PERSISTED' ORDER BY VARIABLE_NAME; +--------------------------+ | VARIABLE_NAME | +--------------------------+ | event_scheduler | | max_connections | | validate_password.policy | +--------------------------+
将
variables_info
与global_variables
表联接,以显示持久化变量的当前值及其值范围mysql> SELECT VI.VARIABLE_NAME, GV.VARIABLE_VALUE, VI.MIN_VALUE,VI.MAX_VALUE FROM performance_schema.variables_info AS VI INNER JOIN performance_schema.global_variables AS GV USING(VARIABLE_NAME) WHERE VI.VARIABLE_SOURCE = 'PERSISTED' ORDER BY VARIABLE_NAME; +--------------------------+----------------+-----------+-----------+ | VARIABLE_NAME | VARIABLE_VALUE | MIN_VALUE | MAX_VALUE | +--------------------------+----------------+-----------+-----------+ | event_scheduler | ON | 0 | 0 | | max_connections | 200 | 1 | 100000 | | validate_password.policy | STRONG | 0 | 0 | +--------------------------+----------------+-----------+-----------+