MySQL 4.0.3 以降では、多くのシステム変数や接続変数にアクセスしやすくなっています。それらの変数のほとんどは、サーバを停止することなく変更できます。
システム変数には、現在の接続だけに該当するスレッド固有(接続固有)変数と、グローバルイベントの設定に使用されるグローバル変数の 2 つの種類があります。 グローバル変数は、新しい接続に対応するスレッド固有変数の初期値を設定するためにも使用されます。
mysqld
の起動時には、コマンドライン引数とオプションファイルからすべてのグローバル変数が初期化されます。この値は
SET GLOBAL
コマンドを使用して変更することができます。新しいスレッドが作成されると、グローバル変数からスレッド固有変数が初期化されます。この値は新しい
SET GLOBAL
コマンドを発行しても変更されません。
GLOBAL
変数の値を設定するには、次の構文のいずれかを使用します(ここでは、変数の例として
sort_buffer_size
を使用します)。
SET GLOBAL sort_buffer_size=value; SET @@global.sort_buffer_size=value;
SESSION
変数の値を設定するには、次の構文のいずれかを使用することができます。
SET SESSION sort_buffer_size=value; SET @@session.sort_buffer_size=value; SET sort_buffer_size=value;
GLOBAL
と SESSION
のどちらも指定しないと、SESSION
が使用されます。 See 項5.5.6. 「SET
構文」。
LOCAL
は SESSION
のシノニムです。
GLOBAL
変数の値を取り出すには、次のコマンドのいずれかを使用することができます。
SELECT @@global.sort_buffer_size; SHOW GLOBAL VARIABLES like 'sort_buffer_size';
SESSION
変数の値を取り出すには、次のコマンドのいずれかを使用することができます。
SELECT @@session.sort_buffer_size; SHOW SESSION VARIABLES like 'sort_buffer_size';
@@variable_name
構文で変数を取り出すときに
GLOBAL
と SESSION
のどちらも指定しないと、MySQL
では、スレッド固有(SESSION
)の値がある場合は、その値が返されます。スレッド固有の値がない場合は、グローバル値が返されます。
GLOBAL
の値しか存在しない変数の場合、取り出しには
GLOBAL
と指定する必要はありませんが、設定には
GLOBAL
と指定する必要があります。これは、後から、同名のスレッド固有変数を導入したり、削除したりするときに問題が発生しないようにするためです。この場合、自分の接続だけでなく、サーバの状態そのものを誤って変更してしまう可能性があります。
次の一覧に、変更および取り出し対象となるすべての変数と、それらの変数で
GLOBAL
と SESSION
のどちらを使用できるかを示します。
変数名 | 値のデータ型 | タイプ |
autocommit | bool | SESSION |
big_tables | bool | SESSION |
binlog_cache_size | num | GLOBAL |
bulk_insert_buffer_size | num | GLOBAL | SESSION |
concurrent_insert | bool | GLOBAL |
connect_timeout | num | GLOBAL |
convert_character_set | string | SESSION |
delay_key_write | OFF | ON | ALL | GLOBAL |
delayed_insert_limit | num | GLOBAL |
delayed_insert_timeout | num | GLOBAL |
delayed_queue_size | num | GLOBAL |
error_count | num | SESSION |
flush | bool | GLOBAL |
flush_time | num | GLOBAL |
foreign_key_checks | bool | SESSION |
identity | num | SESSION |
insert_id | bool | SESSION |
interactive_timeout | num | GLOBAL | SESSION |
join_buffer_size | num | GLOBAL | SESSION |
key_buffer_size | num | GLOBAL |
last_insert_id | bool | SESSION |
local_infile | bool | GLOBAL |
log_warnings | bool | GLOBAL |
long_query_time | num | GLOBAL | SESSION |
low_priority_updates | bool | GLOBAL | SESSION |
max_allowed_packet | num | GLOBAL | SESSION |
max_binlog_cache_size | num | GLOBAL |
max_binlog_size | num | GLOBAL |
max_connect_errors | num | GLOBAL |
max_connections | num | GLOBAL |
max_error_count | num | GLOBAL | SESSION |
max_delayed_threads | num | GLOBAL |
max_heap_table_size | num | GLOBAL | SESSION |
max_join_size | num | GLOBAL | SESSION |
max_relay_log_size | num | GLOBAL |
max_sort_length | num | GLOBAL | SESSION |
max_tmp_tables | num | GLOBAL |
max_user_connections | num | GLOBAL |
max_write_lock_count | num | GLOBAL |
myisam_max_extra_sort_file_size | num | GLOBAL | SESSION |
myisam_repair_threads | num | GLOBAL | SESSION |
myisam_max_sort_file_size | num | GLOBAL | SESSION |
myisam_sort_buffer_size | num | GLOBAL | SESSION |
net_buffer_length | num | GLOBAL | SESSION |
net_read_timeout | num | GLOBAL | SESSION |
net_retry_count | num | GLOBAL | SESSION |
net_write_timeout | num | GLOBAL | SESSION |
query_cache_limit | num | GLOBAL |
query_cache_size | num | GLOBAL |
query_cache_type | enum | GLOBAL |
read_buffer_size | num | GLOBAL | SESSION |
read_rnd_buffer_size | num | GLOBAL | SESSION |
rpl_recovery_rank | num | GLOBAL |
safe_show_database | bool | GLOBAL |
server_id | num | GLOBAL |
slave_compressed_protocol | bool | GLOBAL |
slave_net_timeout | num | GLOBAL |
slow_launch_time | num | GLOBAL |
sort_buffer_size | num | GLOBAL | SESSION |
sql_auto_is_null | bool | SESSION |
sql_big_selects | bool | SESSION |
sql_big_tables | bool | SESSION |
sql_buffer_result | bool | SESSION |
sql_log_binlog | bool | SESSION |
sql_log_off | bool | SESSION |
sql_log_update | bool | SESSION |
sql_low_priority_updates | bool | GLOBAL | SESSION |
sql_max_join_size | num | GLOBAL | SESSION |
sql_quote_show_create | bool | SESSION |
sql_safe_updates | bool | SESSION |
sql_select_limit | bool | SESSION |
sql_slave_skip_counter | num | GLOBAL |
sql_warnings | bool | SESSION |
table_cache | num | GLOBAL |
table_type | enum | GLOBAL | SESSION |
thread_cache_size | num | GLOBAL |
timestamp | bool | SESSION |
tmp_table_size | enum | GLOBAL | SESSION |
tx_isolation | enum | GLOBAL | SESSION |
wait_timeout | num | GLOBAL | SESSION |
warning_count | num | SESSION |
unique_checks | bool | SESSION |
値のデータ型が num
となっている変数には、数値を設定することができます。
bool
となっている変数には、0、1、ON
、または
OFF
を設定することができます。
enum
型の変数には、通常、その変数に対して利用可能な値の
1 つを設定できますが、該当の
enum(列挙)値に対応する数値を設定することもできます(最初の列挙値は
0 です)。
これらの変数のいくつかについて説明します。
変数 | 説明 |
identity | last_insert_id のエイリアス(Sybase との互換性を確保するため) |
sql_low_priority_updates | low_priority_updates のエイリアス |
sql_max_join_size | max_join_size のエイリアス |
version | VERSION() のエイリアス(Sybase(?)との互換性を確保するため) |
その他の変数については、スタートアップオプション、SHOW
VARIABLES
、および SET
に関するセクションで説明しています。 See
項4.1.1. 「mysqld
コマンドラインオプション」。 See
項4.6.8.4. 「SHOW VARIABLES
」。 See
項5.5.6. 「SET
構文」。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.