Use SHOW VARIABLES to display MySQL system variable values. This statement does not require any privileges. Just need to be able to connect to the server.
SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern' | WHERE expr]
The LIKE clause, if present, tells SHOW VARIABLES which variable names to match. To select rows based on broader criteria, use the WHERE clause.
SHOW VARIABLES accepts optional global or session variable scope modifications -
When GLOBAL is used as a modifier, this statement displays the value of the global system variable. For new connections to MySQL, these are the values used to initialize the associated session variables. If a variable does not have a global value, the variable's value will not be displayed.
This statement displays the system variable values that are valid for the current connection when using the SESSION modifier. If a variable has no session value, the variable's global value is displayed. SESSION is another way of saying LOCAL.
If no modifier is specified, it defaults to SESSION.
SHOW VARIABLES There are version-dependent display width limitations. Use SELECT as a workaround for variables with extremely long values that are not fully displayed. For example -
SELECT @@GLOBAL.innodb_data_file_path;
Most system variables can be configured at server startup, although read-only variables like version_comment are an exception. Using the SET statement, a lot can be changed at runtime.
This is part of the output. The name and value list can be different for your server.
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 | +--------------------------------------------+------------------------------+
When the LIKE clause is included, the statement displays only rows for variables whose names match the pattern. Use the LIKE clause (as shown) to get rows for a specific variable -
% is a wildcard character that can be used in a LIKE clause to get a list of variables whose names match the pattern:
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 | +-------------------------+------------------------------+
The pattern to match accepts wildcards anywhere. To match it literally, you should escape it since it is a wildcard character that matches any character. In practice, this is rarely necessary.
Using these commands, you can use MySQL to display all of its system variables. As mentioned before, no privileges are required to use them; all that is required is a connection to the database server.
The above is the detailed content of How to display system variables of MySQL server?. For more information, please follow other related articles on the PHP Chinese website!