文档主页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.14.3 Performance Schema variables_info 表

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

      变量从全局选项文件中设置。 这包括不包含在 EXPLICITEXTRALOGINPERSISTEDSERVERUSER 中的选项文件。

    • LOGIN

      变量从特定于用户的登录路径文件 (~/.mylogin.cnf) 中设置。

    • PERSISTED

      变量从特定于服务器的 mysqld-auto.cnf 选项文件中设置。 如果服务器启动时 persisted_globals_load 被禁用,则没有行具有此值。

    • SERVER

      变量从特定于服务器的 $MYSQL_HOME/my.cnf 选项文件中设置。 有关设置 MYSQL_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_USERSET_HOST 分别为 user17host34.example.com。 对于代理用户连接,这些值对应于外部(代理)用户,而不是执行权限检查的代理用户。 每个列的默认值为空字符串,表示自服务器启动以来未设置该变量。

variables_info 表没有索引。

TRUNCATE TABLE 不允许用于 variables_info 表。

如果在运行时设置了 VARIABLE_SOURCE 值不为 DYNAMIC 的变量,则 VARIABLE_SOURCE 变成 DYNAMICVARIABLE_PATH 变成空字符串。

仅具有会话值的系统变量(如 debug_sync)无法在启动时设置或持久化。 对于仅会话的系统变量,VARIABLE_SOURCE 只能为 COMPILEDDYNAMIC

如果系统变量具有意外的 VARIABLE_SOURCE 值,请考虑您的服务器启动方法。 例如,mysqld_safe 读取选项文件并将其中找到的某些选项作为启动 mysqld 所使用的命令行的一部分传递。 因此,您在选项文件中设置的某些系统变量可能在 variables_info 中显示为 COMMAND_LINE,而不是像您预期的那样显示为 GLOBALSERVER

一些使用 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_infoglobal_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         |
    +--------------------------+----------------+-----------+-----------+