13.7.5.39 SHOW VARIABLES 语句
SHOW [GLOBAL | SESSION] VARIABLES
[LIKE 'pattern' | WHERE expr]
Note
从 MySQL 5.7.6 开始,show_compatibility_56系统变量的值会影响此处所述语句的可用信息和所需特权。有关详细信息,请参见第 5.1.7 节“服务器系统变量”中对该变量的描述。
SHOW VARIABLES显示 MySQL 系统变量的值(请参见第 5.1.7 节“服务器系统变量”)。该语句不需要任何特权。它仅需要连接到服务器的能力。
也可以从以下来源获得系统变量信息:
-
性能架构 table。参见第 25.12.13 节,“性能架构系统变量 table”。
-
GLOBAL_VARIABLES和SESSION_VARIABLEStable。参见第 24.11 节,“ INFORMATION_SCHEMA GLOBAL_VARIABLES 和 SESSION_VARIABLEStable”。
-
mysqladmin variables命令。参见第 4.5.2 节“ mysqladmin-MySQL 服务器 Management 程序”。
对于SHOW VARIABLES,如果存在LIKE子句,则指示要匹配的变量名称。可以提供WHERE
子句以使用更通用的条件来选择行,如第 24.35 节,“ SHOW 语句的扩展”中所述。
SHOW VARIABLES接受可选的GLOBAL
或SESSION
变量作用域修饰符:
-
使用
GLOBAL
修饰符,该语句显示全局系统变量值。这些是用于初始化与 MySQL 的新连接的相应会话变量的值。如果变量没有全局值,则不会显示任何值。 -
使用
SESSION
修饰符,该语句显示对当前连接有效的系统变量值。如果变量没有会话值,则显示全局值。LOCAL
是SESSION
的同义词。 -
如果不存在修饰符,则默认值为
SESSION
。
每个系统变量的范围在第 5.1.7 节“服务器系统变量”处列出。
SHOW VARIABLES受版本依赖的显示宽度限制。对于没有完全显示的具有非常长的值的变量,使用SELECT作为解决方法。例如:
SELECT @@GLOBAL.innodb_data_file_path;
可以在服务器启动时设置大多数系统变量(只读变量,例如version_comment是 exception)。许多都可以在运行时使用SET语句进行更改。参见第 5.1.8 节“使用系统变量”和第 13.7.4.1 节“变量分配的 SET 语法”。
部分输出显示在这里。服务器的名称和值列 table 可能有所不同。 第 5.1.7 节“服务器系统变量”描述每个变量的含义,而第 5.1.1 节“配置服务器”提供有关调整它们的信息。
mysql> SHOW VARIABLES;
+-----------------------------------------+---------------------------+
| Variable_name | Value |
+-----------------------------------------+---------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| autocommit | ON |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /home/jon/bin/mysql-5.5 |
| big_tables | OFF |
| binlog_cache_size | 32768 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_format | STATEMENT |
| binlog_stmt_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
...
| max_allowed_packet | 4194304 |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| max_connect_errors | 100 |
| max_connections | 151 |
| max_delayed_threads | 20 |
| max_error_count | 64 |
| max_heap_table_size | 16777216 |
| max_insert_delayed_threads | 20 |
| max_join_size | 18446744073709551615 |
...
| thread_handling | one-thread-per-connection |
| thread_stack | 262144 |
| time_format | %H:%i:%s |
| time_zone | SYSTEM |
| timestamp | 1316689732 |
| tmp_table_size | 16777216 |
| tmpdir | /tmp |
| transaction_alloc_block_size | 8192 |
| transaction_isolation | REPEATABLE-READ |
| transaction_prealloc_size | 4096 |
| transaction_read_only | OFF |
| tx_isolation | REPEATABLE-READ |
| tx_read_only | OFF |
| unique_checks | ON |
| updatable_views_with_limit | YES |
| version | 5.5.17-log |
| version_comment | Source distribution |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
| wait_timeout | 28800 |
| warning_count | 0 |
+-----------------------------------------+---------------------------+
使用LIKE子句,该语句仅显示名称与模式匹配的那些变量的行。要获取特定变量的行,请使用LIKE子句,如下所示:
SHOW VARIABLES LIKE 'max_join_size';
SHOW SESSION VARIABLES LIKE 'max_join_size';
要获取名称与模式匹配的变量列 table,请在LIKE子句中使用%
通配符:
SHOW VARIABLES LIKE '%size%';
SHOW GLOBAL VARIABLES LIKE '%size%';
通配符可以在要匹配的模式中的任何位置使用。严格来说,因为_
是可与任何单个字符匹配的通配符,所以您应将其转为\_
以对其进行字面匹配。实际上,这几乎没有必要。