服务器维护许多系统变量来指示它的配置方式。它们都有默认值。它们可以在服务器启动时使用命令行或选项文件中的选项进行设置。其中大多数可以在运行时使用 SET
语句进行设置。
从 MySQL 4.0.3 开始,mysqld 服务器维护两种变量。全局变量影响服务器的整体运行。会话变量会影响单个客户端连接的操作。
服务器启动时,会将所有全局变量初始化为其默认值。这些默认值可以通过选项文件或命令行中指定的选项进行更改。服务器启动后,可以通过连接到服务器并发出 SET GLOBAL <em class="replaceable"><code>var_name
语句来更改那些动态的全局变量。要更改全局变量,您必须具有 SUPER<code class="literal">SUPER
权限。
服务器还为每个连接的客户端维护一组会话变量。客户端的会话变量在连接时使用相应全局变量的当前值进行初始化。对于那些动态的会话变量,客户端可以通过发出 SET SESSION <em class="replaceable"><code>var_name<code class="literal">SET SESSION <em class="replaceable"><code>var_name
语句来更改它们。设置会话变量不需要特殊权限,但客户端只能更改自己的会话变量,而不能更改任何其他客户端的会话变量。
对全局变量的更改对于访问该全局变量的任何客户端都是可见的。但是,它只会影响更改后连接的客户端从全局变量初始化的相应会话变量。它不会影响当前连接的任何客户端的会话变量(甚至不会影响发出 SET GLOBAL<code class="literal">SET GLOBAL
语句的客户端的会话变量)。
使用启动选项设置变量时,变量值可以使用后缀 K<code class="literal">K
、M<code class="literal">M
或 G<code class="literal">G
分别表示千字节、兆字节或千兆字节。例如,以下命令以 16 MB 的密钥缓冲区大小启动服务器:
mysqld --key_buffer_size=16M<br>
在 MySQL 4.0 之前,请使用以下语法:
mysqld --set-variable=key_buffer_size=16M<br>
后缀字母的字母大小写不要紧; 16M<code class="literal">16M
和 16m<code class="literal">16m
是等效的。
运行时,使用SET
语句设置系统变量。在这种情况下,不能使用后缀字母,但值可以采用表达式的形式:
mysql> SET sort_buffer_size = 10 * 1024 * 1024;<br>
要显式指定是设置全局变量还是会话变量,请使用 GLOBAL<code class="literal">GLOBAL
或 SESSION<code class="literal">SESSION
选项:
mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;<br>mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;<br>
如果没有任一选项,该语句将设置会话变量。
可以在运行时设置的变量在第 5.3.3.1 节“动态系统变量”中列出。
如果要限制使用 SET
语句设置系统变量的最大值,可以使用 --maximum 形式的选项指定此最大值-<em class="replaceable"><code>var_name<code class="literal">--maximum-<em class="replaceable"><code>var_name
在服务器启动时。例如,要防止 query_cache_size<code class="literal">query_cache_size
的值在运行时增加到超过 32MB,请使用选项 --maximum-query_cache_size=32M<code class="literal">--maximum-query_cache_size=32M
。该功能从 MySQL 4.0.2 开始可用。
您可以使用 SHOW VARIABLES<code class="literal">SHOW VARIABLES
语句查看系统变量及其值。有关详细信息,请参阅第 9.4 节“系统变量”。
mysql> SHOW VARIABLES;<br>+---------------------------------+-------------------------------------------------------------+<br>| Variable_name | Value |<br>+---------------------------------+-------------------------------------------------------------+<br>| auto_increment_increment | 1 |<br>| auto_increment_offset | 1 |<br>| back_log | 50 |<br>| basedir | /usr/local/mysql |<br>| bdb_cache_size | 8388600 |<br>| bdb_home | /usr/local/mysql |<br>| bdb_log_buffer_size | 131072 |<br>| bdb_logdir | |<br>| bdb_max_lock | 10000 |<br>| bdb_shared_data | OFF |<br>| bdb_tmpdir | /tmp/ |<br>| binlog_cache_size | 32768 |<br>| bulk_insert_buffer_size | 8388608 |<br>| character_set_client | latin1 |<br>| character_set_connection | latin1 |<br>| character_set_database | latin1 |<br>| character_set_results | latin1 |<br>| character_set_server | latin1 |<br>| character_set_system | utf8 |<br>| character_sets_dir | /usr/local/mysql/share/charsets/ |<br>| collation_connection | latin1_swedish_ci |<br>| collation_database | latin1_swedish_ci |<br>| collation_server | latin1_swedish_ci |<br>| concurrent_insert | 1 |<br>| connect_timeout | 5 |<br>| datadir | /usr/local/mysql/data/ |<br>| date_format | %Y-%m-%d |<br>| datetime_format | %Y-%m-%d %H:%i:%s |<br>| default_week_format | 0 |<br>| delay_key_write | ON |<br>| delayed_insert_limit | 100 |<br>| delayed_insert_timeout | 300 |<br>| delayed_queue_size | 1000 |<br>| expire_logs_days | 0 |<br>| flush | OFF |<br>| flush_time | 1800 |<br>| ft_boolean_syntax | + -><()~*:""&| |<br>| ft_max_word_len | 84 |<br>| ft_min_word_len | 4 |<br>| ft_query_expansion_limit | 20 |<br>| ft_stopword_file | (built-in) |<br>| group_concat_max_len | 1024 |<br>| have_archive | NO |<br>| have_bdb | YES |<br>| have_compress | YES |<br>| have_crypt | NO |<br>| have_csv | NO |<br>| have_example_engine | NO |<br>| have_geometry | YES |<br>| have_innodb | YES |<br>| have_isam | NO |<br>| have_ndbcluster | NO |<br>| have_openssl | YES |<br>| have_query_cache | YES |<br>| have_raid | NO |<br>| have_rtree_keys | YES |<br>| have_symlink | YES |<br>| init_connect | |<br>| init_file | |<br>| init_slave | |<br>| innodb_additional_mem_pool_size | 2097152 |<br>| innodb_autoextend_increment | 8 |<br>| innodb_buffer_pool_awe_mem_mb | 0 |<br>| innodb_buffer_pool_size | 8388608 |<br>| innodb_data_file_path | ibdata1:10M:autoextend |<br>| innodb_data_home_dir | |<br>| innodb_fast_shutdown | 1 |<br>| innodb_file_io_threads | 4 |<br>| innodb_file_per_table | OFF |<br>| innodb_locks_unsafe_for_binlog | OFF |<br>| innodb_flush_log_at_trx_commit | 1 |<br>| innodb_flush_method | |<br>| innodb_force_recovery | 0 |<br>| innodb_lock_wait_timeout | 50 |<br>| innodb_log_arch_dir | |<br>| innodb_log_archive | OFF |<br>| innodb_log_buffer_size | 1048576 |<br>| innodb_log_file_size | 10485760 |<br>| innodb_log_files_in_group | 2 |<br>| innodb_log_group_home_dir | ./ |<br>| innodb_max_dirty_pages_pct | 90 |<br>| innodb_max_purge_lag | 0 |<br>| innodb_mirrored_log_groups | 1 |<br>| innodb_open_files | 300 |<br>| innodb_table_locks | ON |<br>| innodb_thread_concurrency | 8 |<br>| interactive_timeout | 28800 |<br>| join_buffer_size | 131072 |<br>| key_buffer_size | 4194304 |<br>| key_cache_age_threshold | 300 |<br>| key_cache_block_size | 1024 |<br>| key_cache_pision_limit | 100 |<br>| language | /usr/local/mysql/share/english/ |<br>| large_files_support | ON |<br>| license | GPL |<br>| local_infile | ON |<br>| log | OFF |<br>| log_bin | OFF |<br>| log_error | ./gigan.err |<br>| log_slave_updates | OFF |<br>| log_slow_queries | OFF |<br>| log_update | OFF |<br>| log_warnings | 1 |<br>| long_query_time | 10 |<br>| low_priority_updates | OFF |<br>| lower_case_file_system | OFF |<br>| lower_case_table_names | 1 |<br>| max_allowed_packet | 1048576 |<br>| max_binlog_cache_size | 4294967295 |<br>| max_binlog_size | 1073741824 |<br>| max_connect_errors | 10 |<br>| max_connections | 100 |<br>| max_delayed_threads | 20 |<br>| max_error_count | 64 |<br>| max_heap_table_size | 16777216 |<br>| max_insert_delayed_threads | 20 |<br>| max_join_size | 4294967295 |<br>| max_length_for_sort_data | 1024 |<br>| max_relay_log_size | 0 |<br>| max_seeks_for_key | 4294967295 |<br>| max_sort_length | 1024 |<br>| max_tmp_tables | 32 |<br>| max_user_connections | 0 |<br>| max_write_lock_count | 4294967295 |<br>| myisam_data_pointer_size | 4 |<br>| myisam_max_sort_file_size | 107374182400 |<br>| myisam_recover_options | OFF |<br>| myisam_repair_threads | 1 |<br>| myisam_sort_buffer_size | 8388608 |<br>| named_pipe | OFF |<br>| net_buffer_length | 16384 |<br>| net_read_timeout | 30 |<br>| net_retry_count | 10 |<br>| net_write_timeout | 60 |<br>| new | OFF |<br>| old_passwords | OFF |<br>| open_files_limit | 622 |<br>| optimizer_prune_level | 1 |<br>| optimizer_search_depth | 62 |<br>| pid_file | /usr/local/mysql/gigan.pid |<br>| port | 3306 |<br>| preload_buffer_size | 32768 |<br>| protocol_version | 10 |<br>| query_alloc_block_size | 8192 |<br>| query_cache_limit | 1048576 |<br>| query_cache_min_res_unit | 4096 |<br>| query_cache_size | 0 |<br>| query_cache_type | ON |<br>| query_cache_wlock_invalidate | OFF |<br>| query_prealloc_size | 8192 |<br>| range_alloc_block_size | 2048 |<br>| read_buffer_size | 61440 |<br>| read_only | OFF |<br>| read_rnd_buffer_size | 258048 |<br>| relay_log_purge | ON |<br>| rpl_recovery_rank | 0 |<br>| secure_auth | OFF |<br>| shared_memory | OFF |<br>| shared_memory_base_name | MYSQL |<br>| server_id | 0 |<br>| skip_external_locking | ON |<br>| skip_networking | OFF |<br>| skip_show_database | OFF |<br>| slave_net_timeout | 3600 |<br>| slow_launch_time | 2 |<br>| socket | /tmp/mysql.sock |<br>| sort_buffer_size | 217080 |<br>| sql_mode | |<br>| storage_engine | MyISAM |<br>| sync_binlog | 0 |<br>| sync_frm | ON |<br>| system_time_zone | E. Australia Standard Time |<br>| table_cache | 256 |<br>| table_type | MyISAM |<br>| thread_cache_size | 0 |<br>| thread_stack | 196608 |<br>| time_format | %H:%i:%s |<br>| time_zone | SYSTEM |<br>| tmp_table_size | 5242880 |<br>| tmpdir | /tmp/ |<br>| transaction_alloc_block_size | 8192 |<br>| transaction_prealloc_size | 4096 |<br>| tx_isolation | REPEATABLE-READ |<br>| updatable_views_with_limit | YES |<br>| version | 5.0.2-alpha-max |<br>| version_bdb | Sleepycat Software: Berkeley DB 4.1.24: (December 1, 2004) |<br>| version_comment | Source distribution |<br>| wait_timeout | 28800 |<br>+---------------------------------+-------------------------------------------------------------+