variables_info 表显示了每个系统变量最近一次设置的来源及其值范围。
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。
MAX_VALUE变量允许的最大值。对于类型非数字的变量,此值始终为 0。
SET_TIME最近一次设置变量的时间。默认值为服务器在启动期间初始化全局系统变量的时间。
SET_USER、SET_HOST最近一次设置变量的客户端用户的用户名和主机名。如果客户端使用帐户
'user17'@'%.example.com从主机host34.example.com以user17的身份连接,则SET_USER和SET_HOST分别为user17和host34.example.com。对于代理用户连接,这些值对应于外部(代理)用户,而不是针对其执行权限检查的被代理用户。每列的默认值为零长度字符串,表示自服务器启动以来尚未设置该变量。
variables_info 表没有索引。
不允许对 variables_info 表执行 TRUNCATE TABLE 操作。
如果在运行时设置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 | +--------------------------+----------------+-----------+-----------+