Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.14.2 Performance Schema variables_info 表

variables_info 表显示每个系统变量的来源,以及其值的范围。

variables_info 表具有以下列:

  • VARIABLE_NAME

    变量名称。

  • VARIABLE_SOURCE

    变量最近设置的来源:

    • COMMAND_LINE

      变量在命令行上设置。

    • COMPILED

      变量使用编译时的默认值。 COMPILED 是未设置其他方式的变量的默认值。

    • DYNAMIC

      变量在运行时设置。这包括使用init_file系统变量指定的文件。

    • EXPLICIT

      变量从选项文件中设置,文件名使用--defaults-file选项指定。

    • EXTRA

      变量从选项文件中设置,文件名使用--defaults-extra-file选项指定。

    • GLOBAL

      变量从全局选项文件中设置。这包括不受persisted_globals_load禁用的服务器选项文件。

    • 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, MAX_VALUE

    最小和最大允许的变量值。对于没有这种值的变量(即非数字变量),这两个值都是0。

  • SET_TIME

    变量最后被设置的时间。默认情况下,这是服务器在启动时初始化全局系统变量的时间。

  • SET_USER, SET_HOST

    变量最后被设置的客户端用户名和主机名。如果客户端以user17身份从主机host34.example.com连接,使用账户'user17'@'%.example.com,那么SET_USERSET_HOST分别是user17host34.example.com。对于代理用户连接,这些值对应于外部(代理)用户,而不是被代理用户,对于权限检查。默认情况下,每个列的值都是空字符串,表示变量自服务器启动以来没有被设置。

性能 Schema variables_info 表没有索引。

TRUNCATE TABLEvariables_info 表不可用。

如果在运行时将变量的VARIABLE_SOURCE值设置为除DYNAMIC以外的值,VARIABLE_SOURCE将变为DYNAMICVARIABLE_PATH将变为空字符串。

只有会话值的系统变量(例如debug_sync)不能在启动时设置或持久化。对于会话-only 系统变量,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         |
    +--------------------------+----------------+-----------+-----------+