如何顯示 MySQL 伺服器的系統變數?
MySQL 系統變數的值使用 SHOW VARIABLES 命令顯示。此語句不需要任何許可權,只需要能夠連線到伺服器即可。
語法
SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern' | WHERE expr]
如果存在 LIKE 子句,則 SHOW VARIABLES 命令會指示要匹配哪些變數名。要根據更廣泛的條件選擇行,請使用 WHERE 子句。
SHOW VARIABLES 命令接受可選的全域性或會話變數範圍修飾符:
使用 GLOBAL 作為修飾符時,該語句將顯示全域性系統變數的值。對於新的 MySQL 連線,這些是用於初始化關聯會話變數的值。如果變數沒有全域性值,則不會顯示其值。
使用 SESSION 修飾符時,該語句將顯示當前連線有效的系統變數值。如果變數沒有會話值,則顯示其全域性值。SESSION 等同於 LOCAL。
如果未指定修飾符,則預設為 SESSION。
SHOW VARIABLES 命令存在版本相關的顯示寬度限制。對於值非常長且未完全顯示的變數,請使用 SELECT 語句作為解決方法。例如:
SELECT @@GLOBAL.innodb_data_file_path;
大多數系統變數可以在伺服器啟動時配置,但像 version_comment 這樣的只讀變數除外。許多變數可以在執行時使用 SET 語句進行更改。
這是一部分輸出結果。您伺服器的名稱和值列表可能有所不同。
mysql> SHOW VARIABLES; +--------------------------------------------+------------------------------+ | Variable_name | Value | +--------------------------------------------+------------------------------+ | activate_all_roles_on_login | OFF | | auto_generate_certs | ON | | auto_increment_increment | 1 | | auto_increment_offset | 1 | | autocommit | ON | | automatic_sp_privileges | ON | | avoid_temporal_upgrade | OFF | | back_log | 151 | | basedir | /usr/ | | big_tables | OFF | | bind_address | * | | binlog_cache_size | 32768 | | binlog_checksum | CRC32 | | binlog_direct_non_transactional_updates | OFF | | binlog_error_action | ABORT_SERVER | | binlog_expire_logs_seconds | 2592000 | | binlog_format | ROW | | binlog_group_commit_sync_delay | 0 | | binlog_group_commit_sync_no_delay_count | 0 | | binlog_gtid_simple_recovery | ON | | binlog_max_flush_queue_time | 0 | | binlog_order_commits | ON | | binlog_row_image | FULL | | binlog_row_metadata | MINIMAL | | binlog_row_value_options | | | binlog_rows_query_log_events | OFF | | binlog_stmt_cache_size | 32768 | | binlog_transaction_dependency_history_size | 25000 | | binlog_transaction_dependency_tracking | COMMIT_ORDER | | block_encryption_mode | aes-128-ecb | | bulk_insert_buffer_size | 8388608 | | max_allowed_packet | 67108864 | | 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_digest_length | 1024 | | max_error_count | 1024 | | max_execution_time | 0 | | max_heap_table_size | 16777216 | | max_insert_delayed_threads | 20 | | max_join_size | 18446744073709551615 | | thread_handling | one-thread-per-connection | | thread_stack | 286720 | | time_zone | SYSTEM | | timestamp | 1530906638.765316 | | tls_version | TLSv1.2,TLSv1.3 | | tmp_table_size | 16777216 | | tmpdir | /tmp | | transaction_alloc_block_size | 8192 | | transaction_allow_batching | OFF | | transaction_isolation | REPEATABLE-READ | | transaction_prealloc_size | 4096 | | transaction_read_only | OFF | | transaction_write_set_extraction | XXHASH64 | | unique_checks | ON | | updatable_views_with_limit | YES | | version | 8.0.12 | | version_comment | MySQL Community Server - GPL | | version_compile_machine | x86_64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | | wait_timeout | 28800 | | warning_count | 0 | | windowing_use_high_precision | ON | +--------------------------------------------+------------------------------+
包含 LIKE 子句時,該語句僅顯示變數名稱與模式匹配的行。如以下示例所示,使用 LIKE 子句可以獲取特定變數的行:
% 是一個萬用字元,可以在 LIKE 子句中使用,以獲取名稱與模式匹配的變數列表。
SHOW VARIABLES LIKE '%auto%'; SHOW GLOBAL VARIABLES LIKE '%auto%';
輸出
+--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_attach | ON | | auto_increment_increment | 1 | | auto_increment_offset | 1 | | auto_replicate | OFF | | autocommit | ON | +--------------------------+-------+
SHOW GLOBAL VARIABLES LIKE 'version%';
輸出
+-------------------------+------------------------------+ | Variable_name | Value | +-------------------------+------------------------------+ | version | 5.1.16-beta | | version_comment | MySQL Community Server (GPL) | | version_compile_machine | i686 | | version_compile_os | pc-linux-gnu | +-------------------------+------------------------------+
要匹配的模式在任何位置都可以接受萬用字元。由於它是匹配任何字元的萬用字元,因此應對其進行轉義才能按字面意思進行匹配。實際上,這很少需要。
使用這些命令,您可以使用 MySQL 顯示其所有系統變數。如前所述,不需要任何許可權即可使用它們;只需要連線到資料庫伺服器即可。
廣告