MySQL Server には MySQL Server の構成方法を指示する多くのシステム変数が保持されています。各システム変数にはデフォルト値があります。システム変数は、コマンド行のオプションを使用するか、オプションファイルでサーバー起動時に設定できます。これらのほとんどは、SET
ステートメントを使用してサーバーの実行中に動的に変更でき、これによりサーバーを停止して再起動することなくサーバーの動作を変更できます。システム変数値を式によって参照できます。
システム変数の名前と値を表示するにはいくつかの方法があります。
-
サーバーのコンパイル時のデフォルトおよび読み取られるオプションファイルに基づいて、サーバーが使用する値を表示するには、次のコマンドを使用します。
mysqld --verbose --help
-
すべてのオプションファイルの設定を無視し、サーバーのコンパイル時のデフォルトに基づいてサーバーが使用する値を表示するには、次のコマンドを使用します。
mysqld --no-defaults --verbose --help
実行中のサーバーによって使用される現在の値を表示するには、
SHOW VARIABLES
ステートメントを使用します。
このセクションでは各システム変数について説明します。バージョンが示されていない変数は、すべての MySQL 5.6 リリースに存在します。
次の表は使用可能なすべてのシステム変数をリストしたものです。
表 5.3 システム変数のサマリー
Notes:
1. このオプションは動的ですが、サーバーのみがこの情報を設定するようにしてください。この変数の値は手動で設定しないでください。
追加のシステム変数情報については、次のセクションを参照してください。
セクション5.1.5「システム変数の使用」では、システム変数値の設定および表示の構文について説明します。
セクション5.1.5.2「動的システム変数」では、実行時に設定できる変数を一覧表示しています。
システム変数の調整に関する情報は、セクション8.11.2「サーバーパラメータのチューニング」を参照してください。
セクション14.12「InnoDB の起動オプションおよびシステム変数」では、
InnoDB
システム変数を一覧表示しています。セクション18.3.4.3「MySQL Cluster のシステム変数」では、MySQL クラスタに固有のシステム変数をリストしています。
レプリケーションに固有のサーバーシステム変数については、セクション17.1.4「レプリケーションおよびバイナリロギングのオプションと変数」を参照してください。
次の変数説明の一部では、変数を「有効にする」または「無効にする」ことについて述べています。これらの変数は SET
ステートメントを ON
または 1
に設定すると有効になり、あるいは OFF
または 0
に設定すると無効になります。ただし、MySQL 5.6.2 より前では、このような値をコマンド行またはオプションファイルで設定するには 1
または 0
で設定する必要があり、ON
または OFF
に設定しても機能しません。たとえば、コマンド行において、--delay_key_write=1
は機能しますが、--delay_key_write=ON
は機能しません。MySQL 5.6.2 以降では、起動時にブール変数を ON
、TRUE
、OFF
、および FALSE
に設定できます (大文字小文字を区別しない)。セクション4.2.5「プログラムオプション修飾子」を参照してください。
一部のシステム変数はバッファーまたはキャッシュのサイズを制御します。所定のバッファーについて、サーバーは内部データ構造を割り当てる必要がある場合もあります。これらの構造は、バッファーに割り当てられた合計メモリーから割り当てられ、必要なスペースの量はプラットフォームに依存することがあります。つまり、バッファーサイズを制御するシステム変数に値を割り当てたとき、実際に使用可能なスペースの量が、割り当てられた値と異なる場合もあることを意味します。一部の場合では、この量は割り当てられた値より少ないこともあります。また、サーバーが値を上方に調整することも考えられます。たとえば、最小値が 1024 の変数に値 0 を割り当てた場合、サーバーは値を 1024 に設定します。
バッファーサイズ、長さ、およびスタックサイズの値は、別途指定しないかぎりバイト単位で指定されます。
一部のシステム変数はファイル名の値を取ります。別途指定しないかぎり、値が相対パス名であれば、デフォルトのファイルの場所はデータディレクトリです。場所を明示的に指定するには、絶対パス名を使用します。たとえばデータディレクトリが /var/mysql/data
だとします。ファイル値の変数が相対パス名として指定された場合、ファイルは /var/mysql/data
の下に配置されます。値が絶対パス名である場合、その場所はパス名によって指定されます。
-
authentication_windows_log_level
コマンド行形式 --authentication-windows-log-level
導入 5.6.10 型 数値 デフォルト 0
最小値 0
最大値 4
この変数は、
authentication_windows
Windows 認証プラグインが使用可能で、デバッグコードが有効な場合のみ使用できます。セクション6.3.8.6「Windows ネイティブ認証プラグイン」を参照してください。この変数は、Windows 認証プラグインのロギングレベルを設定します。次の表は、許可される値を示しています。
値 説明 0 ロギングなし 1 エラーメッセージのみログに記録します 2 レベル 1 メッセージおよび警告メッセージをログに記録します 3 レベル 2 メッセージおよび情報メモをログに記録します 4 レベル 3 メッセージおよびデバッグメッセージをログに記録します この変数は MySQL 5.6.10 で追加されました。
-
authentication_windows_use_principal_name
コマンド行形式 --authentication-windows-use-principal-name
導入 5.6.10 型 ブール デフォルト ON
この変数は、
authentication_windows
Windows 認証プラグインが使用可能な場合のみ使用できます。セクション6.3.8.6「Windows ネイティブ認証プラグイン」を参照してください。InitSecurityContext()
関数を使用して認証するクライアントは、接続するサービスを識別する文字列を提供する必要があります (targetName
)。MySQL は、サーバーが実行するアカウントの主体名 (UPN) を使用します。UPN は
という形式で、使用される場所に登録される必要はありません。この UPN は、認証ハンドシェイクの最初にサーバーによって送信されます。user_id
@computer_name
この変数は、サーバーが初期チャレンジで UPN を送信するかどうかを制御します。デフォルトでは、変数は有効になっています。セキュリティー上の理由で、サーバーのアカウント名を平文でクライアントに送信しないようにするために、これを無効にできます。変数が無効な場合、サーバーは最初のチャレンジで常に
0x00
バイトを送信し、クライアントはtargetName
を指定せず、結果として NTLM 認証が使用されます。サーバーがその UPN を取得できない場合 (これは Kerberos 認証をサポートしない環境で主に発生します)、UPN はサーバーによって送信されず、NTLM 認証が使用されます。
この変数は MySQL 5.6.10 で追加されました。
-
コマンド行形式 --autocommit[=#]
システム変数 autocommit
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト ON
自動コミットモード。1 に設定された場合、テーブルへのすべての変更はすぐに有効になります。0 に設定した場合、
COMMIT
を使用してトランザクションを受け入れるか、ROLLBACK
でトランザクションをキャンセルする必要があります。autocommit
が 0 で、これを 1 に変更した場合、MySQL はオープン中のすべてのトランザクションの自動的なCOMMIT
を実行します。トランザクションを始める別の方法は、START TRANSACTION
またはBEGIN
ステートメントを利用する方法です。セクション13.3.1「START TRANSACTION、COMMIT、および ROLLBACK 構文」を参照してください。デフォルトでは、クライアント接続は
autocommit
を 1 に設定して開始されます。デフォルト 0 でクライアントを開始させるには、--autocommit=0
オプションを使用してサーバーを開始することによって、グローバルなautocommit
値を設定します。オプションファイルを使用して変数を設定するには、次の行を含めます。[mysqld] autocommit=0
-
システム変数 automatic_sp_privileges
スコープ グローバル 動的 はい 型 ブール デフォルト TRUE
この変数の値が 1 (デフォルト) のとき、ユーザーがルーチンを実行して変更したりドロップしたりできない場合、サーバーは自動的に
EXECUTE
およびALTER ROUTINE
の権限をストアドルーチンの作成者に付与します。(ルーチンをドロップするにはALTER ROUTINE
権限が必要です。)ルーチンがドロップされると、サーバーはそれらの権限を作成者から自動的にドロップします。automatic_sp_privileges
が 0 の場合、サーバーはこれらの権限を自動的に追加またはドロップしません。ルーチンの作成者は、ルーチンの
CREATE
ステートメントを実行するために使用されるアカウントです。これは、ルーチン定義でDEFINER
として名前が指定されているアカウントと同じでないことがあります。セクション20.2.2「ストアドルーチンと MySQL 権限」も参照してください。
-
システム変数 back_log
スコープ グローバル 動的 いいえ 型 数値 デフォルト (≥ 5.6.6) -1 (autosized)
デフォルト (≤ 5.6.5) 50
最小値 1
最大値 65535
MySQL で保持できる未処理の接続リクエストの数。これはメインの MySQL スレッドが非常に短時間で非常に多くの接続リクエストを受け取る場合に効果をあらわします。次に、メインスレッドが接続を検査し新規スレッドを開始するまで (非常に短いですが) 少し時間がかかります。
back_log
値は、MySQL が新規リクエストへの回答を一時的に停止するまでの短い時間に、スタック可能なリクエストの数を示します。短い時間に大量の接続が予想される場合にかぎり、これを増加する必要があります。つまり、この値は着信 TCP/IP 接続の listen キューのサイズです。使用しているオペレーティングシステムには、このキューのサイズについて独自の制限があります。UNIX
listen()
システムコールのマニュアルページに、詳細情報があります。この変数の最大値については OS のドキュメントを確認してください。back_log
をオペレーティングシステムの制限を超える設定はできません。MySQL 5.6.6 以降では、デフォルト値は次の数式に基づき、900 の上限までに制限されます。
50 + (max_connections / 5)
5.6.6 より前では、デフォルトは 50 です。
-
コマンド行形式 --basedir=path
システム変数 basedir
スコープ グローバル 動的 いいえ 型 ディレクトリ名 MySQL インストールの基本ディレクトリ。この変数は、
--basedir
オプションで設定できます。ほかの変数の相対パス名は、通常は基本ディレクトリを基準として解決されます。 -
コマンド行形式 --big-tables
システム変数 big_tables
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト OFF
1 に設定された場合、すべての一時テーブルはメモリーでなくディスクに保管されます。これはスピードが少し遅くなりますが、エラー
The table
は、大きい一時テーブルを必要とするtbl_name
is fullSELECT
オペレーションでは発生しません。新規接続のデフォルト値は 0 です (インメモリーの一時テーブルを使用します)。通常は、インメモリーテーブルが必要に応じてディスクベースのテーブルに自動的に変換されるため、この変数をふたたび設定する必要はありません。 -
コマンド行形式 --bind-address=addr
システム変数 (≥ 5.6.1) bind_address
スコープ (≥ 5.6.1) グローバル 動的 (≥ 5.6.1) いいえ 型 文字列 デフォルト (≥ 5.6.6) *
デフォルト (≤ 5.6.5) 0.0.0.0
--bind-address
オプションの値。この変数は MySQL 5.6.1 で追加されました。 -
コマンド行形式 --block-encryption-mode=#
導入 5.6.17 システム変数 block_encryption_mode
スコープ グローバル、セッション 動的 はい 型 文字列 デフォルト aes-128-ecb
この変数は、AES などのブロックベースのアルゴリズムのブロック暗号化モードを制御します。これは
AES_ENCRYPT()
およびAES_DECRYPT()
の暗号化に影響します。block_encryption_mode
はaes-
形式の値を取り、ここでkeylen
-mode
keylen
はビット単位の鍵の長さ、mode
は暗号化モードです。この値は大文字と小文字を区別しません。許可されるkeylen
値は 128、192、および 256 です。許可される暗号化モードは MySQL が OpenSSL または yaSSL のいずれを使用して構築されているかによって異なります。OpenSSL の場合に許可される
mode
値:ECB
、CBC
、CFB1
、CFB8
、CFB128
、OFB
yaSSL の場合に許可される
mode
値:ECB
、CBC
たとえば次のステートメントでは、AES 暗号化機能が 256 ビットの鍵の長さおよび CBC モードを使用します。
SET block_encryption_mode = 'aes-256-cbc';
サポートされない鍵の長さや SSL ライブラリがサポートしないモードを含む値に
block_encryption_mode
を設定しようとすると、エラーが発生します。この変数は MySQL 5.6.17 で追加されました。
-
コマンド行形式 --bulk-insert-buffer-size=#
システム変数 bulk_insert_buffer_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 8388608
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
MyISAM
では、空ではないテーブルにデータを追加するとき、INSERT ... SELECT
、INSERT ... VALUES (...), (...), ...
、およびLOAD DATA INFILE
の一括挿入をさらに高速にするツリー状の特殊なキャッシュを使用します。この変数は、スレッドあたりのバイト単位のキャッシュツリーのサイズを制限します。これを 0 に設定すると、この最適化が無効になります。デフォルトの値は 8M バイトです。 -
システム変数 character_set_client
スコープ グローバル、セッション 動的 はい 型 文字列 クライアントから到達するステートメントの文字セット。この変数のセッション値は、クライアントがサーバーに接続するときにクライアントによってリクエストされる文字セットを使用して設定されます。(多くのクライアントは、この文字セットを明示的に指定するための
--default-character-set
オプションをサポートします。セクション10.1.4「接続文字セットおよび照合順序」も参照してください。)クライアントがリクエストする値が不明または利用できないか、サーバーがクライアントリクエストを無視するように構成されている場合、セッション値を設定するよう変数のグローバル値が使用されます。クライアントの MySQL バージョンが MySQL 4.1 よりも古いため、文字セットをリクエストしない場合。
クライアントがリクエストする文字セットがサーバーで認識されない場合。たとえば、日本語に対応したクライアントが、
sjis
サポートを構成されていないサーバーに接続するときにsjis
をリクエストする場合があります。mysqld が
--skip-character-set-client-handshake
オプションを使用して開始された場合、これによってクライアント文字セット構成が無視されます。これによって MySQL 4.0 の動作が再現されるため、すべてのクライアントをアップグレードしないでサーバーをアップグレードする場合に便利です。
ucs2
、utf16
、utf16le
、およびutf32
をクライアント文字セットとして使用することはできず、つまりこれらはSET NAMES
またはSET CHARACTER SET
でも機能しないことを意味します。 -
システム変数 character_set_connection
スコープ グローバル、セッション 動的 はい 型 文字列 文字セットイントロデューサを持たないリテラル用、および数字から文字列への変換用に使用される文字セット。
-
システム変数 character_set_database
スコープ グローバル、セッション 動的 はい 型 文字列 脚注 このオプションは動的ですが、サーバーのみがこの情報を設定するようにしてください。この変数の値は手動で設定しないでください。 デフォルトデータベースで使用される文字セット。デフォルトのデータベースが変更されるたびに、サーバーはこの変数を設定します。デフォルトデータベースが存在しない場合、変数は
character_set_server
と同じ値になります。 -
コマンド行形式 --character-set-filesystem=name
システム変数 character_set_filesystem
スコープ グローバル、セッション 動的 はい 型 文字列 デフォルト binary
ファイルシステムの文字セット。この変数は、
LOAD DATA INFILE
およびSELECT ... INTO OUTFILE
ステートメントやLOAD_FILE()
関数などのファイル名を参照する文字列リテラルを解釈するために使用されます。このようなファイル名は、ファイルを開くよう試行する前にcharacter_set_client
からcharacter_set_filesystem
に変換されます。デフォルト値はbinary
で、変換が行われないことを意味します。マルチバイトファイル名が許可されるシステムについては、別の値が適切な場合もあります。たとえば、システムが UTF-8 を使用してファイル名を表現する場合、character_set_filesystem
を'utf8'
に設定します。 -
システム変数 character_set_results
スコープ グローバル、セッション 動的 はい 型 文字列 結果セットやエラーメッセージなどのクエリー結果をクライアントに返すために使用される文字セット。
-
コマンド行形式 --character-set-server
システム変数 character_set_server
スコープ グローバル、セッション 動的 はい 型 文字列 デフォルト latin1
サーバーのデフォルト文字セット。
-
システム変数 character_set_system
スコープ グローバル 動的 いいえ 型 文字列 デフォルト utf8
識別子を格納するためにサーバーで使用される文字セット。この値は常に
utf8
です。 -
コマンド行形式 --character-sets-dir=path
システム変数 character_sets_dir
スコープ グローバル 動的 いいえ 型 ディレクトリ名 文字セットがインストールされているディレクトリ。
-
システム変数 collation_connection
スコープ グローバル、セッション 動的 はい 型 文字列 接続文字セットの照合順序。
-
システム変数 collation_database
スコープ グローバル、セッション 動的 はい 型 文字列 脚注 このオプションは動的ですが、サーバーのみがこの情報を設定するようにしてください。この変数の値は手動で設定しないでください。 デフォルトデータベースで使用される照合。デフォルトのデータベースが変更されるたびに、サーバーはこの変数を設定します。デフォルトデータベースが存在しない場合、変数は
collation_server
と同じ値になります。 -
コマンド行形式 --collation-server
システム変数 collation_server
スコープ グローバル、セッション 動的 はい 型 文字列 デフォルト latin1_swedish_ci
サーバーのデフォルトの照合順序。
-
コマンド行形式 --completion-type=#
システム変数 completion_type
スコープ グローバル、セッション 動的 はい 型 列挙 デフォルト NO_CHAIN
有効な値 NO_CHAIN
CHAIN
RELEASE
0
1
2
トランザクション完了タイプ。この変数は、次の表に示す値を取ることができます。変数は、名前の値か対応する整数値のいずれかを使用して割り当てることができます。
値 説明 NO_CHAIN
(または 0)COMMIT
およびROLLBACK
は影響されません。これはデフォルト値です。CHAIN
(または 1)COMMIT
およびROLLBACK
は、それぞれCOMMIT AND CHAIN
およびROLLBACK AND CHAIN
と同等です。(終了したばかりのトランザクションと同じ分離レベルで新規トランザクションがすぐに開始します。)RELEASE
(または 2)COMMIT
およびROLLBACK
は、それぞれCOMMIT RELEASE
およびROLLBACK RELEASE
と同等です。(サーバーはトランザクションの終了後に切断されます。)completion_type
は、START TRANSACTION
またはBEGIN
で開始されてCOMMIT
またはROLLBACK
で終了するトランザクションに影響します。これは、セクション13.3.3「暗黙的なコミットを発生させるステートメント」に一覧表示されているステートメントの実行から生じる暗黙的なコミットに適用されません。また、XA COMMIT
やXA ROLLBACK
に対して、あるいはautocommit=1
の場合にも適用されません。 -
コマンド行形式 --concurrent-insert[=#]
システム変数 concurrent_insert
スコープ グローバル 動的 はい 型 列挙 デフォルト AUTO
有効な値 NEVER
AUTO
ALWAYS
0
1
2
AUTO
(デフォルト) の場合、MySQL ではデータファイルの中間に空きブロックがないMyISAM
テーブルに対してINSERT
およびSELECT
ステートメントを同時に実行することが許可されます。--skip-new
を指定して mysqld を開始した場合、この変数はNEVER
に設定されます。この変数は、次の表に示す値を取ることができます。変数は、名前の値か対応する整数値のいずれかを使用して割り当てることができます。
値 説明 NEVER
(または 0)同時挿入を無効にします AUTO
(または 1)(デフォルト) 空きブロックがない MyISAM
テーブルについての同時挿入を有効にしますALWAYS
(または 2)空きブロックがあるテーブルであっても、すべての MyISAM
テーブルについての同時挿入を有効にします。途中に空きブロックのあるテーブルが別のスレッドによって使用されている場合は、新しい行がテーブルの最後に挿入されます。そうでない場合は、MySQL は正常な書き込みロックを取得し、行を空きブロックに挿入します。セクション8.10.3「同時挿入」も参照してください。
-
コマンド行形式 --connect-timeout=#
システム変数 connect_timeout
スコープ グローバル 動的 はい 型 数値 デフォルト 10
最小値 2
最大値 31536000
mysqld サーバーが
ハンドシェイクエラー
を返すまでに接続パケットを待つ秒数。デフォルトは 10 秒です。「Lost connection to MySQL server at '
という形式のエラーがクライアントで頻繁に発生する場合、XXX
', system error:errno
」connect_timeout
値を増やすと役立つことがあります。 -
導入 5.6.2 システム変数 core_file
スコープ グローバル 動的 いいえ 型 ブール デフォルト OFF
サーバーがクラッシュした場合にコアファイルを書き込むかどうか。この変数は
--core-file
オプションによって設定されます。これは MySQL 5.6.2 で追加されました。 -
コマンド行形式 --datadir=path
システム変数 datadir
スコープ グローバル 動的 いいえ 型 ディレクトリ名 MySQL データディレクトリ。この変数は
--datadir
オプションで設定できます。 -
この変数は使用されません。これは MySQL 5.6.7 以降で非推奨となり、今後の MySQL リリースで削除されます。
-
この変数は使用されません。これは MySQL 5.6.7 以降で非推奨となり、今後の MySQL リリースで削除されます。
-
コマンド行形式 --debug[=debug_options]
システム変数 debug
スコープ グローバル、セッション 動的 はい 型 文字列 デフォルト (Windows) d:t:i:O,\mysqld.trace
デフォルト (Unix) d:t:i:o,/tmp/mysqld.trace
この変数は現在のデバッグ設定を指定します。これはデバッグサポートを使用して構築されたサーバーについてのみ使用できます。初期値は、サーバー始動時に指定された
--debug
オプションのインスタンスの値から取得されます。グローバル値およびセッション値を実行時に設定でき、セッション値についてもSUPER
権限が必要です。+
または-
で始まる値を割り当てると、値は現在の値に追加されたり現在の値から削除されたりします。mysql> SET debug = 'T'; mysql> SELECT @@debug; +---------+ | @@debug | +---------+ | T | +---------+ mysql> SET debug = '+P'; mysql> SELECT @@debug; +---------+ | @@debug | +---------+ | P:T | +---------+ mysql> SET debug = '-P'; mysql> SELECT @@debug; +---------+ | @@debug | +---------+ | T | +---------+
詳細については、セクション24.4.3「DBUG パッケージ」を参照してください。
-
システム変数 debug_sync
スコープ セッション 動的 はい 型 文字列 この変数は、Debug Sync 機能へのユーザーインタフェースです。Debug Sync を使用するには MySQL が
-DENABLE_DEBUG_SYNC=1
オプションで構成されている必要があります (セクション2.9.4「MySQL ソース構成オプション」を参照)。Debug Sync がコンパイルされていない場合、このシステム変数は使用できません。グローバル変数値は読み取り専用で、この機能が有効かどうかを示します。デフォルトでは、Debug Sync は無効化されており、
debug_sync
の値はOFF
です。サーバーが--debug-sync-timeout=
で開始した場合 (ここで、N
N
は 0 より大きいタイムアウト値)、Debug Sync は有効化され、debug_sync
の値はON - current signal
の後にシグナル名が続いたものになります。また、N
は個々の同期点についてのデフォルトのタイムアウトになります。セッション値はすべてのユーザーによって読み取ることができ、グローバル変数と同じ値になります。セッション値は、同期点を制御するための
SUPER
権限を持つユーザーによって設定できます。Debug Sync 機能および同期点の使用方法についての説明は、「MySQL Internals: Test Synchronization」を参照してください。
-
コマンド行形式 --default-storage-engine=name
システム変数 default_storage_engine
スコープ グローバル、セッション 動的 はい 型 列挙 デフォルト InnoDB
デフォルトのストレージエンジン。MySQL 5.6.3 以降では、この変数は永続的なテーブルについてのみストレージエンジンを設定します。
TEMPORARY
テーブルについてストレージエンジンを設定するには、default_tmp_storage_engine
システム変数を設定します。使用可能かつ有効化できるストレージエンジンを表示するには、
SHOW ENGINES
ステートメントまたはクエリーINFORMATION_SCHEMA
ENGINES
テーブルを参照してください。default_storage_engine
は、非推奨となったstorage_engine
に優先して使用するようにしてください。サーバー起動時のデフォルトストレージエンジンを無効にした場合、永続テーブルと
TEMPORARY
テーブルの両方のデフォルトエンジンを別のエンジンに設定しなければならず、そうしないとサーバーは起動しません。 -
コマンド行形式 --default-tmp-storage-engine=name
導入 5.6.3 システム変数 default_tmp_storage_engine
スコープ グローバル、セッション 動的 はい 型 列挙 デフォルト InnoDB
TEMPORARY
テーブルのデフォルトストレージエンジン (CREATE TEMPORARY TABLE
で作成されたもの)。永続的なテーブルについてのストレージエンジンを設定するには、default_storage_engine
システム変数を設定します。サーバー起動時のデフォルトストレージエンジンを無効にした場合、永続テーブルと
TEMPORARY
テーブルの両方のデフォルトエンジンを別のエンジンに設定しなければならず、そうしないとサーバーは起動しません。default_tmp_storage_engine
は MySQL 5.6.3 で追加されました。 -
コマンド行形式 --default-week-format=#
システム変数 default_week_format
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 7
WEEK()
関数について使用するデフォルトモード値。セクション12.7「日付および時間関数」を参照してください。 -
コマンド行形式 --delay-key-write[=name]
システム変数 delay_key_write
スコープ グローバル 動的 はい 型 列挙 デフォルト ON
有効な値 ON
OFF
ALL
このオプションは、
MyISAM
テーブルにのみ適用されます。これは、CREATE TABLE
ステートメントに使用できるDELAY_KEY_WRITE
テーブルオプションの処理に影響する次のいずれかの値を指定できます。オプション 説明 OFF
DELAY_KEY_WRITE
は無視されます。ON
MySQL は CREATE TABLE
ステートメントに指定されるDELAY_KEY_WRITE
オプションを優先します。これはデフォルト値です。ALL
新しくオープンしたすべてのテーブルは、 DELAY_KEY_WRITE
オプションを有効にして作成された場合と同様に処理されます。テーブルの
DELAY_KEY_WRITE
を有効にした場合、インデックス更新のたびにそのテーブルのキーバッファーがフラッシュされるのではなく、テーブルが閉じたときだけフラッシュされます。これによりキーの書き込みが非常に高速化されますが、この機能を使用する場合、--myisam-recover-options
オプションを指定してサーバーを開始することによって、すべてのMyISAM
テーブルの自動チェックを追加します (たとえば、--myisam-recover-options=BACKUP,FORCE
)。セクション5.1.3「サーバーコマンドオプション」およびセクション15.2.1「MyISAM 起動オプション」を参照してください。警告--external-locking
で外部ロックを有効にした場合、キーの遅延書き込みを使用するテーブルについてのインデックス破損に対する保護はありません。 -
コマンド行形式 --delayed-insert-limit=#
非推奨 5.6.7 システム変数 delayed_insert_limit
スコープ グローバル 動的 はい 型 数値 デフォルト 100
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
delayed_insert_limit
件の遅延した行を非トランザクションテーブルに挿入したあと、INSERT DELAYED
ハンドラスレッドは、保留中のSELECT
ステートメントがないかどうかを検査します。その場合、遅延した行の挿入を続行する前に、それらの実行を許可します。MySQL 5.6.7 以降では、このシステム変数は非推奨となり (
DELAYED
挿入が非推奨となったため)、今後のリリースで削除される予定です。 -
コマンド行形式 --delayed-insert-timeout=#
非推奨 5.6.7 システム変数 delayed_insert_timeout
スコープ グローバル 動的 はい 型 数値 デフォルト 300
終了する前に、
INSERT DELAYED
ハンドラスレッドがINSERT
ステートメントを待機する秒数。MySQL 5.6.7 以降では、このシステム変数は非推奨となり (
DELAYED
挿入が非推奨となったため)、今後のリリースで削除される予定です。 -
コマンド行形式 --delayed-queue-size=#
非推奨 5.6.7 システム変数 delayed_queue_size
スコープ グローバル 動的 はい 型 数値 デフォルト 1000
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
これは、非トランザクションテーブルに対する
INSERT DELAYED
ステートメントを処理するときに、キューに入れる行の数に関するテーブルごとの制限です。キューがいっぱいになると、INSERT DELAYED
ステートメントを実行するすべてのクライアントは、キューにふたたび空きができるまで待機します。MySQL 5.6.7 以降では、このシステム変数は非推奨となり (
DELAYED
挿入が非推奨となったため)、今後のリリースで削除される予定です。 -
disconnect_on_expired_password
コマンド行形式 --disconnect-on-expired-password=#
導入 5.6.10 システム変数 disconnect_on_expired_password
スコープ セッション 動的 いいえ 型 ブール デフォルト ON
この変数は、期限切れのパスワードを持つクライアントをサーバーが処理する方法を制御します。
クライアントが期限切れパスワードを処理できるように指定されている場合、
disconnect_on_expired_password
の値は無関係です。サーバーはクライアントが接続することを許可しますが、クライアントをサンドボックスモードに設定します。-
クライアントが期限切れパスワードを処理できるように指定しない場合、サーバーは
disconnect_on_expired_password
の値に従ってクライアントを処理します。disconnect_on_expired_password
: が有効な場合、サーバーはクライアントを切断します。disconnect_on_expired_password
: が無効な場合、サーバーはクライアントの接続を許可しますが、クライアントをサンドボックスモードに設定します。
期限切れパスワードに関するクライアントとサーバーの対話の設定の詳細については、セクション6.3.6「パスワードの期限切れとサンドボックスモード」を参照してください。
この変数は MySQL 5.6.10 で追加されました。
-
コマンド行形式 --div-precision-increment=#
システム変数 div_precision_increment
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 4
最小値 0
最大値 30
この変数は、
/
演算子で実行される除算の結果のスケールを増やす桁数を示します。デフォルト値は 4 です。最小値および最大値は、それぞれ 0 および 30 です。次の例は、デフォルト値を増やした効果を説明したものです。mysql> SELECT 1/7; +--------+ | 1/7 | +--------+ | 0.1429 | +--------+ mysql> SET div_precision_increment = 12; mysql> SELECT 1/7; +----------------+ | 1/7 | +----------------+ | 0.142857142857 | +----------------+
-
コマンド行形式 --engine-condition-pushdown
非推奨 はい (removed in 5.6.1); use optimizer_switch
insteadシステム変数 engine_condition_pushdown
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト ON
この変数は MySQL 5.6.1 で削除されました。
optimizer_switch
変数のengine_condition_pushdown
フラグを代わりに使用します。セクション8.8.5.2「切り替え可能な最適化の制御」を参照してください。 -
導入 5.6.5 システム変数 end_markers_in_json
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト OFF
オプティマイザ JSON 出力がエンドマーカーを追加するかどうか。
-
導入 5.6.5 システム変数 eq_range_index_dive_limit
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 10
最小値 0
最大値 4294967295
この変数は、オプティマイザが限定する行数を推定するときに、インデックスダイブの使用からインデックス統計の使用に切り換える場合の等価比較条件内の等価範囲の数を指定します。これは次に示す同等のいずれかの形式を持つ式の評価に適用され、このときオプティマイザは一意でないインデックスを使用して
col_name
値を参照します。col_name IN(val1, ..., valN) col_name = val1 OR ... OR col_name = valN
どちらの場合も、式に
N
個の等価範囲が含まれています。オプティマイザはインデックスダイブまたはインデックス統計を使用すると行の推定を実行できます。eq_range_index_dive_limit
が 0 より大きい場合、eq_range_index_dive_limit
以上の等価範囲があれば、オプティマイザはインデックスダイブの代わりに既存のインデックス統計を使用します。したがって、N
個までの等価範囲に対してインデックスダイブの使用を可能にするには、eq_range_index_dive_limit
をN
+ 1 に設定します。インデックス統計の使用を無効にして、N
に関係なくインデックスダイブを常に使用するには、eq_range_index_dive_limit
を 0 に設定します。詳細については、セクション8.2.1.3.3「複数値比較の等価範囲の最適化」を参照してください。
この変数は MySQL 5.6.5 で追加されました。5.6.5 より前では、オプティマイザはすべての場合にインデックスダイブを使用して行の推定を実行します。
最適な推定を行うためにテーブルインデックス統計を更新するには、
ANALYZE TABLE
を使用します。 -
メッセージを生成した最後のステートメントから発生したエラーの数。この変数は読み取り専用です。セクション13.7.5.18「SHOW ERRORS 構文」を参照してください。
-
コマンド行形式 --event-scheduler[=value]
システム変数 event_scheduler
スコープ グローバル 動的 はい 型 列挙 デフォルト OFF
有効な値 ON
OFF
DISABLED
この変数はイベントスケジューラのステータスを示し、可能な値は
ON
、OFF
、およびDISABLED
で、デフォルトはOFF
です。この変数と、イベントスケジューラの操作におけるその効果は、イベントの章の概要セクションでさらに詳しく説明されています。 -
コマンド行形式 --expire-logs-days=#
システム変数 expire_logs_days
スコープ グローバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 99
バイナリログファイルの自動削除のための日数。デフォルトは 0 で 「自動削除しない」ことを意味します。削除は起動時およびバイナリログがフラッシュされるときに発生する可能性があります。ログのフラッシュは、セクション5.2「MySQL Server ログ」に記載されているように発生します。
バイナリログファイルを手動で削除するには、
PURGE BINARY LOGS
ステートメントを使用します。セクション13.4.1.1「PURGE BINARY LOGS 構文」を参照してください。 -
explicit_defaults_for_timestamp
コマンド行形式 --explicit-defaults-for-timestamp=#
導入 5.6.6 システム変数 explicit_defaults_for_timestamp
スコープ セッション 動的 いいえ 型 ブール デフォルト FALSE
MySQL では、
TIMESTAMP
データ型は非標準的な方式であるという点でほかのデータ型と異なります。NULL
属性で明示的に宣言されないTIMESTAMP
カラムには、NOT NULL
属性が割り当てられます。(ほかのデータ型のカラムは、NOT NULL
として明示的に宣言されない場合、NULL
値が許可されます。)そのようなカラムをNULL
に設定すると、カラムは現在のタイムスタンプに設定されます。テーブル内の最初の
TIMESTAMP
カラムは、NULL
属性や明示的なDEFAULT
またはON UPDATE
句で宣言されない場合、DEFAULT CURRENT_TIMESTAMP
およびON UPDATE CURRENT_TIMESTAMP
属性が自動的に割り当てられます。最初のカラムに続く
TIMESTAMP
カラムは、NULL
属性または明示的なDEFAULT
句で宣言されない場合、DEFAULT '0000-00-00 00:00:00'
(「ゼロ」タイムスタンプ) が自動的に割り当てられます。そのようなカラムに対して明示的な値を指定しない挿入された行については、カラムに'0000-00-00 00:00:00'
が自動的に割り当てられて、警告は発生しません。
これらの非標準の動作は
TIMESTAMP
についてはデフォルトのままですが、MySQL 5.6.6 以降では非推奨となり、起動時に次の警告が表示されます。[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
警告が示すように、非標準の動作をオフにするには、新しい
explicit_defaults_for_timestamp
システム変数を起動時に有効にします。この変数を有効にすると、サーバーはTIMESTAMP
を、代わりに次のように処理します。明示的に
NOT NULL
として宣言されないTIMESTAMP
カラムでは、NULL
値が許可されます。そのようなカラムをNULL
に設定することで、カラムは現在のタイムスタンプではなくNULL
に設定されます。TIMESTAMP
カラムにDEFAULT CURRENT_TIMESTAMP
またはON UPDATE CURRENT_TIMESTAMP
属性が自動的に割り当てられません。これらの属性は、明示的に指定する必要があります。NOT NULL
として宣言され、明示的なDEFAULT
句を持たないTIMESTAMP
カラムは、デフォルト値を持たないものとして処理されます。そのようなカラムについて明示的な値を指定しない挿入された行の場合、結果は SQL モードによって異なります。厳密 SQL モードが有効である場合、エラーが発生します。厳密 SQL モードが有効でない場合、カラムには暗黙的なデフォルトの'0000-00-00 00:00:00'
が割り当てられ、警告が発生します。これは、MySQL がDATETIME
などのほかの時間型を処理する方法に類似しています。
注記explicit_defaults_for_timestamp
は、それ自体が非推奨です。これは、その唯一の目的が、将来の MySQL リリースで削除される現在非推奨となったTIMESTAMP
動作に対する制御を許可するためです。その削除が行われると、explicit_defaults_for_timestamp
は目的を失うため、同様に削除されます。この変数は MySQL 5.6.6 で追加されました。
-
システム変数 external_user
スコープ セッション 動的 いいえ 型 文字列 クライアントを認証するために使用されるプラグインによって設定された、認証プロセス中に使用される外部ユーザー名。ネイティブ (組み込み型) の MySQL 認証や、プラグインで値が設定されない場合、この変数は
NULL
です。セクション6.3.9「プロキシユーザー」を参照してください。 -
コマンド行形式 --flush
システム変数 flush
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
ON
の場合、各 SQL ステートメントのあとでサーバーはすべての変更をデスクにフラッシュ (同期) します。通常、MySQL では各 SQL ステートメントの終了後にのみすべての変更内容をディスクに書き込み、ディスクへの同期はオペレーティングシステムが処理します。セクションB.5.4.2「MySQL が繰り返しクラッシュする場合の対処方法」を参照してください。--flush
オプションで mysqld を起動した場合、この変数はON
に設定されます。 -
コマンド行形式 --flush-time=#
システム変数 flush_time
スコープ グローバル 動的 はい 型 数値 デフォルト (Windows, ≥ 5.6.6) 0
デフォルト (Windows, ≤ 5.6.5) 1800
デフォルト 0
最小値 0
これがゼロ以外の値に設定されると、すべてのテーブルは
flush_time
秒ごとに閉じられて、リソースが解放され、フラッシュされていないデータがディスクへ同期されます。このオプションは、リソースが非常に限定されたシステムでのみ使用することを推奨します。デフォルトは 0 ですが、MySQL 5.6.6 以前では、Windows のデフォルトは 1800 です。 -
1 (デフォルト) に設定すると、
InnoDB
テーブルについての外部キー制約が検査されます。0 に設定すると、そのような制約は無視されます。MySQL Cluster NDB 7.3.2 以降では、NDB
テーブルでこの変数を設定することは、それをInnoDB
テーブルで実行することと同じ効果が得られます。以前では、この設定は無視され、そのようなすべての検査が強制されていました (バグ #14095855)。一般的に、通常の操作中はこの設定を有効にしたままにすることで、参照整合性を強制します。外部キーの検査を無効化することは、テーブルの親子関係によって要求される順序と異なる順序でこれらのテーブルをリロードする場合に役立つことがあります。セクション14.6.6「InnoDB と FOREIGN KEY 制約」を参照してください。foreign_key_checks
を 0 に設定すると、データ定義ステートメントにも影響します。DROP SCHEMA
は、スキーマの外部のテーブルによって参照されている外部キーを持つテーブルをスキーマが含む場合であってもスキーマをドロップし、DROP TABLE
は、別のテーブルによって参照されている外部キーを持つテーブルをドロップします。注記foreign_key_checks
を 1 に設定すると、既存のテーブルデータのスキャンがトリガーされません。したがって、foreign_key_checks = 0
のときにテーブルに追加された行は、一貫性が検証されません。 -
コマンド行形式 --ft-boolean-syntax=name
システム変数 ft_boolean_syntax
スコープ グローバル 動的 はい 型 文字列 デフォルト + -><()~*:""&|
IN BOOLEAN MODE
を使用して実行されるブール全文検索によってサポートされる演算子のリスト。セクション12.9.2「ブール全文検索」を参照してください。デフォルトの変数値は
'+ -><()~*:""&|'
です。値を変更するルールは次のようになります。演算子の機能は、文字列内の位置によって決定されます。
置換する値は 14 文字である必要があります。
各文字は、英数字以外の ASCII 文字である必要があります。
1 番目または 2 番目の文字がスペースである必要があります。
位置 11 および 12 にある句を引用する演算子を除き、重複は許可されません。これらの 2 つの文字は同じである必要はありませんが、同じであってもよいのはこれら 2 つだけです。
位置 10、13、および 14 (デフォルトで 「
:
」、「&
」、および 「|
」 に設定) は将来の拡張用に予約されています。
-
コマンド行形式 --ft-max-word-len=#
システム変数 ft_max_word_len
スコープ グローバル 動的 いいえ 型 数値 最小値 10
MyISAM
FULLTEXT
インデックスに含めることができる最大の単語の長さ。注記この変数を変更したあと、
MyISAM
テーブルのFULLTEXT
インデックスを再構築する必要があります。REPAIR TABLE
を使用します。tbl_name
QUICK -
コマンド行形式 --ft-min-word-len=#
システム変数 ft_min_word_len
スコープ グローバル 動的 いいえ 型 数値 デフォルト 4
最小値 1
MyISAM
FULLTEXT
インデックスに含めることができる最小の単語の長さ。注記この変数を変更したあと、
MyISAM
テーブルのFULLTEXT
インデックスを再構築する必要があります。REPAIR TABLE
を使用します。tbl_name
QUICK -
コマンド行形式 --ft-query-expansion-limit=#
システム変数 ft_query_expansion_limit
スコープ グローバル 動的 いいえ 型 数値 デフォルト 20
最小値 0
最大値 1000
WITH QUERY EXPANSION
を使用して実行する全文検索で使用する最上位の一致の数。 -
コマンド行形式 --ft-stopword-file=file_name
システム変数 ft_stopword_file
スコープ グローバル 動的 いいえ 型 ファイル名 MyISAM
テーブルの全文検索について、ストップワードのリストの読み取り元ファイル。サーバーは、別のディレクトリを指定する絶対パス名が指定されないかぎり、データディレクトリ内のファイルを検索します。ファイル内のすべての単語が使用され、コメントは受け付けされません。デフォルトでは、ストップワードの組み込みリストが使用されます (storage/myisam/ft_static.c
ファイルに定義されています)。この変数を空の文字列 (''
) に設定すると、ストップワードフィルタリングが無効になります。セクション12.9.4「全文ストップワード」も参照してください。注記この変数またはストップワードファイルの内容を変更したあと、
MyISAM
テーブルのFULLTEXT
インデックスを再構築する必要があります。REPAIR TABLE
を使用します。tbl_name
QUICK -
コマンド行形式 --general-log
システム変数 general_log
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
一般クエリーログを有効にするかどうか。値が 0 (または
OFF
) の場合はログを無効にし、1 (またはON
) の場合はログを有効にします。デフォルト値は--general_log
オプションが指定されているかどうかによって異なります。ログ出力先はlog_output
システム変数によって制御され、この値をNONE
にした場合はログが有効になっていてもログエントリは書き込まれません。 -
コマンド行形式 --general-log-file=file_name
システム変数 general_log_file
スコープ グローバル 動的 はい 型 ファイル名 デフォルト host_name.log
一般クエリーログファイルの名前。デフォルト値は
ですが、初期値はhost_name
.log--general_log_file
オプションを使用すると変更できます。 -
コマンド行形式 --group-concat-max-len=#
システム変数 group_concat_max_len
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 1024
最小値 4
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
GROUP_CONCAT()
関数について許可されるバイト単位の最大の結果の長さ。デフォルトは 1024 です。 -
zlib
圧縮ライブラリがサーバーで利用できる場合はYES
、そうでない場合はNO
。利用できない場合、COMPRESS()
およびUNCOMPRESS()
関数は使用できません。 -
crypt()
システムコールがサーバーで利用できる場合はYES
、そうでない場合はNO
。利用できない場合、ENCRYPT()
関数は使用できません。 -
mysqld が
CSV
テーブルをサポートする場合はYES
、そうでない場合はNO
。この変数は MySQL 5.6.1 で削除されました。代わりに
SHOW ENGINES
を使用してください。 -
mysqld がプラグインの動的ロードをサポートする場合は
YES
、そうでない場合はNO
。 -
サーバーが空間データ型をサポートする場合は
YES
、そうでない場合はNO
。 -
mysqld が
InnoDB
テーブルをサポートする場合はYES
。--skip-innodb
が使用される場合はDISABLED
。この変数は MySQL 5.6.1 で削除されました。代わりに
SHOW ENGINES
を使用してください。 -
この変数は
have_ssl
のエイリアスです。 -
mysqld がパーティショニングをサポートする場合は
YES
。この変数は MySQL 5.6.1 で削除されました。代わりに
SHOW PLUGINS
を使用してください。詳細については、第19章「パーティション化」を参照してください。 -
ステートメントプロファイリング機能が存在する場合は
YES
、そうでない場合はNO
。存在する場合、この機能を有効または無効にするかがprofiling
システム変数によって制御されます。セクション13.7.5.32「SHOW PROFILES 構文」を参照してください。この変数は MySQL 5.6.8 で非推奨となり、将来の MySQL リリースで削除されます。
-
mysqld がクエリーキャッシュをサポートする場合は
YES
、そうでない場合はNO
。 -
RTREE
インデックスを利用できる場合はYES
、そうでない場合はNO
。(これらはMyISAM
テーブル内の空間インデックスで使用されます。) -
mysqld が SSL 接続をサポートする場合は
YES
、そうでない場合はNO
。DISABLED
の場合、サーバーは SSL サポート付きでコンパイルされているが、適切な--ssl-
オプションを指定して開始されなかったことを示します。詳細については、セクション6.3.10.2「SSL を使用するための MySQL の構成」を参照してください。xxx
-
シンボリックリンクサポートを有効化している場合は
YES
、そうでない場合はNO
。これは Unix ではDATA DIRECTORY
およびINDEX DIRECTORY
のテーブルオプションをサポートし、Windows ではデータディレクトリの symlink をサポートするために必要です。--skip-symbolic-links
オプションを指定してサーバーが開始された場合、この値はDISABLED
です。 -
導入 5.6.5 システム変数 host_cache_size
スコープ グローバル 動的 はい 型 数値 デフォルト (≥ 5.6.8) -1 (autosized)
デフォルト (≤ 5.6.7) 128
最小値 0
最大値 65536
内部ホストキャッシュのサイズ (セクション8.11.5.2「DNS ルックアップの最適化とホストキャッシュ」を参照してください)。サイズを 0 に設定すると、ホストキャッシュが無効になります。実行時にキャッシュサイズを変更すると、暗黙的に
FLUSH HOSTS
操作によってホストキャッシュがクリアされ、host_cache
テーブルが切り捨てられます。デフォルト値は 128 で、500 までの
max_connections
の値については 1 が加算され、max_connections
の値が 500 を超えて 20 増えるごとに 1 が加算され、上限は 2000 までに制限されます。MySQL 5.6.8 より前では、デフォルトは 128 です。--skip-host-cache
の使用はhost_cache_size
システム変数を 0 に設定することに似ていますが、host_cache_size
の方が柔軟性が高く、これはサーバー起動時だけでなく実行時にもホストキャッシュのサイズを変更したり有効化または無効化したりするために使用できるためです。--skip-host-cache
を指定してサーバーを開始しても、host_cache_size
の値の変更を妨げるわけではありませんが、この変更は効果がなく、host_cache_size
を 0 より大きく設定してもキャッシュはふたたび有効化されません。この変数は MySQL 5.6.5 で追加されました。
-
システム変数 hostname
スコープ グローバル 動的 いいえ 型 文字列 サーバーは起動時に、この変数をサーバーホスト名に設定します。
-
この変数は
last_insert_id
変数のシノニムです。これはほかのデータベースシステムとの互換性のために存在します。この値はSELECT @@identity
で読み取ることができ、SET identity
で設定できます。 -
導入 5.6.3 システム変数 ignore_db_dirs
スコープ グローバル 動的 いいえ 型 文字列 データディレクトリ内でデータベースディレクトリとして考慮されない、カンマで区切られた名前のリスト。この値は、サーバー起動時に指定されるすべての
--ignore-db-dir
の実例によって設定されます。この変数は MySQL 5.6.3 で追加されました。
-
コマンド行形式 --init-connect=name
システム変数 init_connect
スコープ グローバル 動的 はい 型 文字列 接続する各クライアントに対してサーバーによって実行される文字列。文字列は 1 つ以上の SQL ステートメントで構成され、セミコロン文字で区切られます。たとえば、各クライアントセッションは、デフォルトでは自動コミットモードが有効な状態で開始します。古いサーバー (MySQL 5.5.8 より前) では、自動コミットをデフォルトで無効にするよう指定するためのグローバルな
autocommit
システム変数が存在しませんが、同じ効果を得るための回避策としてinit_connect
を使用できます。SET GLOBAL init_connect='SET autocommit=0';
init_connect
変数はコマンド行またはオプションファイルにも設定できます。ここに示されたような変数を、オプションファイルを使用して設定するには、次の行を含めます。[mysqld] init_connect='SET autocommit=0'
init_connect
の内容は、SUPER
権限を持つユーザーに対して実行されません。これを行うのは、init_connect
の値が誤っていても、すべてのクライアントの接続を妨げないようにするためです。たとえば、値に含まれているステートメントが構文エラーを含むため、クライアント接続が失敗することがあります。SUPER
権限を持つユーザーに対してinit_connect
を実行しないことで、これらのユーザーは接続を開き、init_connect
値を修正できます。 -
コマンド行形式 --init-file=file_name
システム変数 init_file
スコープ グローバル 動的 いいえ 型 ファイル名 サーバーを起動したときに、
--init-file
オプションで指定するファイルの名前。これは、サーバーが起動したときにサーバーで実行する SQL ステートメントを含むファイルにしてください。各ステートメントは単一の行にして、コメントを含めなでください。各ステートメントの末尾に;
、\g
、\G
などのステートメントターミネータを指定しないようにしてください。 -
innodb_
xxx
InnoDB
システム変数は、セクション14.12「InnoDB の起動オプションおよびシステム変数」にリストされています。これらの変数は、InnoDB
テーブルのストレージ、メモリー使用、および I/O パターンの多くの側面を制御し、InnoDB がデフォルトストレージエンジンになったため、特に重要です。 -
AUTO_INCREMENT
値を挿入するときに、後に続くINSERT
またはALTER TABLE
ステートメントによって使用される値。これは主にバイナリログと一緒に使用されます。 -
コマンド行形式 --interactive-timeout=#
システム変数 interactive_timeout
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 28800
最小値 1
サーバーが対話型の接続で、対話型の接続を閉じる前にアクティビティーを待機する秒数。対話型クライアントは、
mysql_real_connect()
でCLIENT_INTERACTIVE
オプションを使用するクライアントと定義されます。wait_timeout
も参照してください。 -
コマンド行形式 --join-buffer-size=#
システム変数 join_buffer_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト (その他, 64 ビットプラットフォーム, ≥ 5.6.6) 262144
デフォルト (その他, 64 ビットプラットフォーム, ≤ 5.6.5) 131072
デフォルト (その他, 32 ビットプラットフォーム, ≥ 5.6.6) 262144
デフォルト (その他, 32 ビットプラットフォーム, ≤ 5.6.5) 131072
デフォルト (Windows, ≥ 5.6.6) 262144
デフォルト (Windows, ≤ 5.6.5) 131072
最小値 128
最大値 (その他, 64 ビットプラットフォーム) 18446744073709547520
最大値 (その他, 32 ビットプラットフォーム) 4294967295
最大値 (Windows) 4294967295
単純インデックススキャン、範囲インデックススキャン、およびインデックスを使用しないため完全テーブルスキャンを実行する結合について、使用されるバッファーの最小サイズ。通常の場合、高速な結合を得るための最適な方法は、インデックスを追加することです。インデックスを追加できない場合、より高速な完全結合を得るために、
join_buffer_size
の値を大きくします。2 つのテーブル間の完全結合 1 つに対して 1 つの結合バッファーが割り当てられます。インデックスが使用されない複数テーブル間の複雑な結合については、複数の結合バッファーが必要になることもあります。バッチキーアクセス (BKA) を使用しないかぎり、一致する各行を保持するために必要な量よりも大きいバッファーを設定することの利点はなく、すべての結合は少なくとも最小のサイズを割り当てるため、この変数をグローバルに大きい値に設定する場合は注意してください。グローバル設定を小さくしておき、大規模な結合を実行するセッションでのみ大きい設定に変更することを推奨します。メモリーを使用するほとんどのクエリーによって必要なサイズよりもグローバルサイズを大きくすると、メモリー割り当て時間が原因でパフォーマンスが著しく低下することがあります。
BKA が使用される場合、
join_buffer_size
の値によって、ストレージエンジンへの個々のリクエストでのキーのバッチの大きさが定義されます。バッファーが大きいほど、結合操作の右側テーブルへの順次アクセスが増え、パフォーマンスを著しく向上させることができます。デフォルトは MySQL 5.6.6 以降では 256K バイトで、それより前は 128K バイトです。
join_buffer_size
で許可される最大の設定値は 4G バイト −1 です。64 ビットプラットフォームの場合は大きい値が許可されます (64 ビットの Windows の場合は例外で、大きい値は 4G バイト − 1 に切り捨てられて警告が出ます)。結合バッファリングについての追加情報は、セクション8.2.1.10「Nested Loop 結合アルゴリズム」を参照してください。バッチキーアクセスについては、セクション8.2.1.14「Block Nested Loop 結合と Batched Key Access 結合」を参照してください。
-
コマンド行形式 --keep-files-on-create=#
システム変数 keep_files_on_create
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト OFF
MyISAM
テーブルがDATA DIRECTORY
オプションなしで作成される場合、.MYD
ファイルがデータベースディレクトリ内に作成されます。デフォルトでは、MyISAM
が既存の.MYD
ファイルを検出した場合、そのファイルを上書きします。INDEX DIRECTORY
オプションを指定せずに作成されたテーブルについて、.MYI
ファイルに同じことが当てはまります。この動作を抑制するには、keep_files_on_create
変数をON
(1) に設定します。この場合、MyISAM
は既存のファイルを上書きせず、代わりにエラーが返されます。デフォルト値はOFF
(0) です。MyISAM
テーブルがDATA DIRECTORY
またはINDEX DIRECTORY
オプションを使用して作成され、既存の.MYD
または.MYI
ファイルが見つかった場合、MyISAM は常にエラーを返します。指定されたディレクトリ内のファイルは上書きされません。 -
コマンド行形式 --key-buffer-size=#
システム変数 key_buffer_size
スコープ グローバル 動的 はい 型 数値 デフォルト 8388608
最小値 8
最大値 (64 ビットプラットフォーム) OS_PER_PROCESS_LIMIT
最大値 (32 ビットプラットフォーム) 4294967295
MyISAM
テーブルのインデックスブロックはバッファリングされ、すべてのスレッドで共有されます。key_buffer_size
は、インデックスブロックに使用されるバッファーのサイズです。キーバッファーはキーキャッシュとしても知られています。32 ビットプラットフォームでは、
key_buffer_size
に許可される最大の設定値は 4G バイト − 1 です。64 ビットプラットフォームでは、さらに大きい値が許可されます。実質的な最大サイズは、使用可能な物理 RAM や、オペレーティングシステムまたはハードウェアプラットフォームによって課されるプロセスごとの RAM 制限によって、もっと小さいことがあります。この変数の値は、リクエストされるメモリーの量を示します。サーバーは内部的に、この量までのできるだけ多くのメモリーを割り当てますが、実際の割り当てがもっと少なくなることもあります。値を増やすことで、すべての読み取りおよび複数の書き込みのインデックス処理を改善できます。システムの主な機能が
MyISAM
ストレージエンジンを使用して MySQL を実行する場合、マシンの合計メモリーの 25% がこの変数の許容可能な値です。ただし、値を大きくし過ぎると (マシンの合計メモリーの 50% 超)、システムのページングが始まってきわめて低速になることがあります。これは MySQL がデータ読み取りのためのファイルシステムキャッシュの実行をオペレーティングシステムに依存しているためで、ファイルシステムキャッシュのためにいくらかの空きを残しておく必要があります。また、MyISAM
に追加して使用するほかのストレージエンジンのメモリー要件も考慮します。多くの行の同時書き込みなどスピードを高めるには、
LOCK TABLES
を使用します。セクション8.2.2.1「INSERT ステートメントの速度」を参照してください。キーバッファーのパフォーマンスを確認するために、
SHOW STATUS
ステートメントを発行し、Key_read_requests
、Key_reads
、Key_write_requests
、およびKey_writes
のステータス変数を調べることができます。(セクション13.7.5「SHOW 構文」を参照してください。)Key_reads/Key_read_requests
の比率は通常は 0.01 より小さくなります。操作がほとんど更新と削除だけの場合はKey_writes/Key_write_requests
の比率は 1 に近くなりますが、同時に多くの行に影響を与える更新を行う場合や、DELAY_KEY_WRITE
テーブルオプションを使用する場合はもっと小さくなることがあります。使用中のキーバッファーの部分は、
key_buffer_size
に加えて、Key_blocks_unused
ステータス変数と、key_cache_block_size
システム変数から利用可能なバッファーブロックサイズを使用して決定できます。1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
キーバッファー内の一部のスペースは、管理構造の内部で割り当てられるため、この値は概算です。これらの構造についてのオーバーヘッドの量に影響する要素には、ブロックサイズおよびポインタサイズがあります。ブロックサイズが増加すると、オーバーヘッドで失われるキーバッファーのパーセントが減少する傾向にあります。ブロックが大きくなると、読み取り操作の数が少なくなりますが (読み取りあたりで取得されるキーが増えるため)、検査されないキーの読み取りが逆に増加します (ブロック内の一部のキーがクエリーに関連していない場合)。
MyISAM
の複数キーキャッシュを作成できます。グループとしてではなく個別の各キャッシュに対して 4G バイトのサイズ制限が適用されます。セクション8.9.2「MyISAM キーキャッシュ」を参照してください。 -
コマンド行形式 --key-cache-age-threshold=#
システム変数 key_cache_age_threshold
スコープ グローバル 動的 はい 型 数値 デフォルト 300
最小値 100
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
この値は、キーキャッシュのホットサブリストからウォームサブリストへのバッファーの格下げを制御します。値が低いと格下げが早く行われます。最小値は 100 です。デフォルト値は 300 です。セクション8.9.2「MyISAM キーキャッシュ」を参照してください。
-
コマンド行形式 --key-cache-block-size=#
システム変数 key_cache_block_size
スコープ グローバル 動的 はい 型 数値 デフォルト 1024
最小値 512
最大値 16384
キーキャッシュ内のバイト単位のブロックのサイズ。デフォルト値は 1024 です。セクション8.9.2「MyISAM キーキャッシュ」を参照してください。
-
コマンド行形式 --key-cache-division-limit=#
システム変数 key_cache_division_limit
スコープ グローバル 動的 はい 型 数値 デフォルト 100
最小値 1
最大値 100
キーキャッシュバッファーリストのホットサブリストとウォームサブリストの間の分割点。値は、ウォームサブリスト用に使用するバッファーリストのパーセントです。許可される値の範囲は 1 から 100 です。デフォルト値は 100 です。セクション8.9.2「MyISAM キーキャッシュ」を参照してください。
-
システム変数 large_files_support
スコープ グローバル 動的 いいえ 大きなファイルをサポートするオプションで mysqld をコンパイルしているかどうか。
-
コマンド行形式 --large-pages
システム変数 large_pages
スコープ グローバル 動的 いいえ プラットフォーム固有 Linux 型 ブール デフォルト FALSE
大規模ページサポートが (
--large-pages
オプションで) 有効になっているかどうか。セクション8.11.4.2「ラージページのサポートの有効化」を参照してください。 -
システム変数 large_page_size
スコープ グローバル 動的 いいえ 型 数値 デフォルト 0
大規模ページサポートが有効化されている場合、これはメモリーページのサイズを示します。現在、大規模メモリーページは Linux でのみサポートされており、ほかのプラットフォームではこの変数の値は常に 0 です。セクション8.11.4.2「ラージページのサポートの有効化」を参照してください。
-
LAST_INSERT_ID()
から返される値。これは、テーブルを更新するステートメント内でLAST_INSERT_ID()
を使用するときにバイナリログ内に格納されます。この変数を設定しても、mysql_insert_id()
C API 関数によって返される値は更新されません。 -
コマンド行形式 --lc-messages=name
システム変数 lc_messages
スコープ グローバル、セッション 動的 はい 型 文字列 デフォルト en_US
エラーメッセージに使用するロケール。デフォルトは
en_US
です。サーバーは引数を言語名に変換し、これをlc_messages_dir
の値と組み合わせてエラーメッセージファイルの場所を生成します。セクション10.2「エラーメッセージ言語の設定」を参照してください。 -
コマンド行形式 --lc-messages-dir=dir_name
システム変数 lc_messages_dir
スコープ グローバル 動的 いいえ 型 ディレクトリ名 エラーメッセージが配置されているディレクトリ。サーバーはこの値を
lc_messages
の値と一緒に使用して、エラーメッセージファイルの場所を生成します。セクション10.2「エラーメッセージ言語の設定」を参照してください。 -
システム変数 lc_time_names
スコープ グローバル、セッション 動的 はい 型 文字列 この変数は、日および月の名前と略語を表示するために使用する言語を制御するロケールを指定します。この変数は
DATE_FORMAT()
、DAYNAME()
、およびMONTHNAME()
関数の出力に影響を与えます。ロケール名は、'ja_JP'
や'pt_BR'
などの POSIX 規格の値です。システムのロケール設定に関係なく、デフォルト値は'en_US'
です。詳細については、セクション10.7「MySQL Server のロケールサポート」を参照してください。 -
システム変数 license
スコープ グローバル 動的 いいえ 型 文字列 デフォルト GPL
サーバーが持つライセンスのタイプ。
-
システム変数 local_infile
スコープ グローバル 動的 はい 型 ブール LOAD DATA INFILE
ステートメントでLOCAL
がサポートされているかどうか。この変数が無効な場合、クライアントはLOAD DATA
ステートメントでLOCAL
を使用できません。セクション6.1.6「LOAD DATA LOCAL のセキュリティーの問題」を参照してください。 -
コマンド行形式 --lock-wait-timeout=#
システム変数 lock_wait_timeout
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 31536000
最小値 1
最大値 31536000
この変数は、メタデータロックを取得するための試行のタイムアウトを秒単位で指定します。許可される値の範囲は 1 から 31536000 (1 年) です。デフォルトは 31536000 です。
このタイムアウトは、メタデータロックを使用するすべてのステートメントに適用されます。これらには、テーブル、ビュー、ストアドプロシージャー、ストアドファンクションの DML 操作および DDL 操作のほかに、
LOCK TABLES
、FLUSH TABLES WITH READ LOCK
、およびHANDLER
ステートメントが含まれます。このタイムアウトは、
GRANT
またはREVOKE
ステートメントやテーブルロギングステートメントによって変更される付与テーブルなど、mysql
データベース内のシステムテーブルへの暗黙的なアクセスには適用されません。タイムアウトは、SELECT
やUPDATE
などによって直接アクセスされるシステムテーブルに適用されます。タイムアウト値は、メタデータロック試行ごとに別々に適用されます。ある特定のステートメントが複数のロックを必要とする場合もあるため、タイムアウトエラーを報告する前に、ステートメントが
lock_wait_timeout
値よりも長くブロックする可能性もあります。ロックタイムアウトが発生すると、ER_LOCK_WAIT_TIMEOUT
が報告されます。lock_wait_timeout
は、常に 1 年のタイムアウトで実行される遅延挿入に適用されません。これは不要なタイムアウトを回避するために行われます。遅延挿入を発行するセッションは、遅延挿入タイムアウトの通知を受け取らないためです。 -
システム変数 locked_in_memory
スコープ グローバル 動的 いいえ mysqld が
--memlock
によってメモリー内でロックされたかどうか。 -
コマンド行形式 --log[=file_name]
非推奨 はい (removed in 5.6.1); use general-log
insteadシステム変数 log
スコープ グローバル 動的 はい 型 ファイル名 この変数は MySQL 5.6.1 で削除されました。代わりに
general_log
を使用してください。 -
log_bin_trust_function_creators
コマンド行形式 --log-bin-trust-function-creators
システム変数 log_bin_trust_function_creators
スコープ グローバル 動的 はい 型 ブール デフォルト FALSE
この変数は、バイナリロギングが有効な場合に適用されます。これは、安全ではないイベントがバイナリログに書き込まれる原因となるストアドファンクションを、ストアドファンクションの生成者が作成しないということを信頼できるかどうかを制御します。0 (デフォルト) に設定した場合、ユーザーは
CREATE ROUTINE
またはALTER ROUTINE
権限に加えてSUPER
権限を持たないかぎり、ストアドファンクションを作成または変更することが許可されません。0 に設定することで、関数をDETERMINISTIC
特性で、あるいはREADS SQL DATA
またはNO SQL
特性で宣言する必要があるという制約も強制されます。変数が 1 に設定された場合、MySQL はストアドファンクション作成にこれらの制約を強制しません。この変数はトリガー作成にも適用されます。セクション20.7「ストアドプログラムのバイナリロギング」を参照してください。 -
コマンド行形式 --log-error[=file_name]
システム変数 log_error
スコープ グローバル 動的 いいえ 型 ファイル名 エラーログの場所か、サーバーが標準エラー出力にエラーメッセージを書き込む場合は空白。セクション5.2.2「エラーログ」 を参照してください。
-
コマンド行形式 --log-output=name
システム変数 log_output
スコープ グローバル 動的 はい 型 セット デフォルト FILE
有効な値 TABLE
FILE
NONE
一般クエリーログおよびスロークエリーログの出力先。値は
TABLE
(テーブルへのログ)、FILE
(ファイルへのログ)、NONE
(テーブルまたはファイルをログしない) という 1 つ以上の単語のカンマ区切りリストにできます。デフォルト値はFILE
です。NONE
がある場合は、ほかの指定子よりも優先されます。値がNONE
の場合、ログが有効であってもログエントリは書き込まれません。ログが有効でない場合、log_output
の値がNONE
でなくてもロギングは実行されません。詳細については、セクション5.2.1「一般クエリーログおよびスロークエリーログの出力先の選択」を参照してください。 -
コマンド行形式 --log-queries-not-using-indexes
システム変数 log_queries_not_using_indexes
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
インデックスを使用しないクエリーがスロークエリーログに記録されるかどうか。セクション5.2.5「スロークエリーログ」を参照してください。
-
導入 5.6.11 システム変数 log_slow_admin_statements
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
スロークエリーログに書き込まれるステートメントにスロー管理ステートメントを含めます。管理ステートメントには、
ALTER TABLE
、ANALYZE TABLE
、CHECK TABLE
、CREATE INDEX
、DROP INDEX
、OPTIMIZE TABLE
、およびREPAIR TABLE
が含まれます。この変数は
--log-slow-admin-statements
オプションの置換として MySQL 5.6.11 で追加されました。システム変数はオプションと同じ方法でコマンド行またはオプションファイルに設定できるため、サーバー起動時に何らかの変更を行う必要はありませんが、システム変数は実行時に値を検査または設定することも可能です。 -
コマンド行形式 --log-slow-queries[=name]
非推奨 はい (removed in 5.6.1); use slow-query-log
insteadシステム変数 log_slow_queries
スコープ グローバル 動的 はい 型 ブール この変数は MySQL 5.6.1 で削除されました。代わりに
slow_query_log
を使用してください。 -
log_throttle_queries_not_using_indexes
導入 5.6.5 システム変数 log_throttle_queries_not_using_indexes
スコープ グローバル 動的 はい 型 数値 デフォルト 0
log_queries_not_using_indexes
が有効な場合、log_throttle_queries_not_using_indexes
変数は、スロークエリーログに書き込み可能な分あたりのクエリー数を制限します。値 0 (デフォルト) は「制限なし」を意味します。詳細は、セクション5.2.5「スロークエリーログ」を参照してください。この変数は MySQL 5.6.5 で追加されました。
-
コマンド行形式 --log-warnings[=#]
システム変数 log_warnings
スコープ (≥ 5.6.4) グローバル スコープ (≤ 5.6.3) グローバル、セッション 動的 はい 型 数値 デフォルト 1
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
追加の警告メッセージをエラーログに生成するかどうか。この変数はデフォルトで有効 (1) になっており、これを 0 に設定することによって無効にできます。値が 0 より大きい場合、サーバーはステートメントベースのロギングについて、安全ではないステートメントに関するメッセージをログに記録します。値が 1 より大きい場合、新規接続試行の接続の中止およびアクセス拒否エラーがログに記録されます。
-
コマンド行形式 --long-query-time=#
システム変数 long_query_time
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 10
最小値 0
クエリーの時間がこの秒数よりかかると、サーバーは
Slow_queries
ステータス変数を増やします。スロークエリーログが有効な場合、クエリーはスロークエリーログファイルに記録されます。この値は CPU 時間でなくリアルタイムで測定されるため、負荷の軽いシステムでしきい値を下回るクエリーが、負荷の重いシステムではしきい値を超える場合もあります。long_query_time
の最小値およびデフォルト値は、それぞれ 0 および 10 です。値はマイクロ秒の精度まで指定できます。ファイルへのロギングの場合、時間はマイクロ秒の部分も含めて書き込まれます。テーブルへのロギングの場合、時間の整数部のみ書き込まれ、マイクロ秒の部分は無視されます。セクション5.2.5「スロークエリーログ」を参照してください。 -
コマンド行形式 --low-priority-updates
システム変数 low_priority_updates
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト FALSE
1
に設定された場合、すべてのINSERT
、UPDATE
、DELETE
、およびLOCK TABLE WRITE
ステートメントは、影響を受けるテーブルでの保留中のSELECT
またはLOCK TABLE READ
がなくなるまで待機します。これは、テーブルレベルロックのみを使用するストレージエンジン (MyISAM
、MEMORY
、およびMERGE
) にのみ影響を与えます。 -
システム変数 lower_case_file_system
スコープ グローバル 動的 いいえ 型 ブール この変数は、データディレクトリが配置されているファイルシステムでのファイル名の大文字小文字の区別を示します。
OFF
はファイル名が大文字小文字を区別することを意味し、ON
は大文字小文字を区別しないことを意味します。この変数は、ファイルシステム属性を反映するため読み取り専用で、変数を設定してもファイルシステムに影響しません。 -
コマンド行形式 --lower-case-table-names[=#]
システム変数 lower_case_table_names
スコープ グローバル 動的 いいえ 型 数値 デフォルト 0
最小値 0
最大値 2
0 に設定されると、テーブル名は指定したとおりに格納され、比較では大文字と小文字が区別されます。1 に設定されると、テーブル名はディスク上に小文字で格納され、比較では大文字と小文字は区別されません。2 に設定されると、テーブル名は指定したとおりに格納されますが、小文字で比較されます。このオプションはデータベース名やテーブルエイリアスにも適用されます。追加情報については セクション9.2.2「識別子の大文字と小文字の区別」を参照してください。
大文字小文字を区別しないファイル名を持つシステム (Windows や OS X など) で MySQL を実行する場合、この変数を 0 に設定しないでください。そのようなシステムでこの変数を 0 に設定し、大文字を小文字に (あるいは小文字を大文字に) 入れ替えて
MyISAM
テーブルスペースにアクセスすると、インデックスの破損が発生することがあります。Windows では、デフォルト値は 1 です。OS X では、デフォルト値は 2 です。InnoDB
テーブルを使用する場合、名前を強制的に小文字に変換するために、すべてのプラットフォームでこの値を 1 に設定します。MySQL 5.6 でのこの変数の設定は、大文字小文字の区別に関するレプリケーションのフィルタ処理オプションの動作に影響します。これは以前のバージョンの MySQL からの変更点です。(バグ #51639) 詳細については、セクション17.2.3「サーバーがレプリケーションフィルタリングルールをどのように評価するか」を参照してください。
以前のバージョンの MySQL では、レプリケーションマスターとスレーブの
lower_case_table_names
に異なる設定を使用すると、スレーブが大文字小文字を区別するファイルシステムを使用していた場合にレプリケーションが失敗する可能性がありました。この問題は MySQL 5.6.1 で解決されました。詳細については、セクション17.4.1.34「レプリケーションと変数」を参照してください。 -
コマンド行形式 --max-allowed-packet=#
システム変数 max_allowed_packet
スコープ グローバル 動的 はい 型 数値 デフォルト (≥ 5.6.6) 4194304
デフォルト (≤ 5.6.5) 1048576
最小値 1024
最大値 1073741824
1 つのパケット、生成された文字列または中間文字列、または
mysql_stmt_send_long_data()
C API 関数によって送信されたすべてのパラメータの最大サイズ。デフォルトは、MySQL 5.6.6 では 4M バイト、それより前については 1M バイトです。パケットメッセージバッファーは
net_buffer_length
バイトに初期化されますが、必要に応じてmax_allowed_packet
バイトまで大きくできます。この値はデフォルトでは小さいため、大きい (正しくない可能性がある) パケットをキャッチできません。大きい
BLOB
カラムまたは長い文字列を使用している場合、この値を大きくする必要があります。使用する最大のBLOB
と同じ大きさにしてください。max_allowed_packet
のプロトコル制限は 1G バイトです。値は 1024 の倍数にします。倍数でない場合、もっとも近い倍数に切り下げられます。max_allowed_packet
変数の値を変更することによってメッセージバッファーサイズを変更するとき、クライアントプログラムでそれが可能である場合は、クライアント側のバッファーサイズも変更します。クライアントライブラリに組み込まれるデフォルトのmax_allowed_packet
値は 1G バイトですが、個々のクライアントプログラムはこれをオーバーライドできます。たとえば、mysql および mysqldump のデフォルトは、それぞれ 16M バイトおよび 24M バイトです。また、コマンド行またはオプションファイル内でmax_allowed_packet
を設定することによって、クライアント側の値を変更することもできます。この変数のセッションの値は、読み取り専用です。
-
コマンド行形式 --max-connect-errors=#
システム変数 max_connect_errors
スコープ グローバル 動的 はい 型 数値 デフォルト (64 ビットプラットフォーム, ≥ 5.6.6) 100
デフォルト (64 ビットプラットフォーム, ≤ 5.6.5) 10
デフォルト (32 ビットプラットフォーム, ≥ 5.6.6) 100
デフォルト (32 ビットプラットフォーム, ≤ 5.6.5) 10
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ホストからの連続する接続リクエストが、接続に成功することなくこの数を超えて中断した場合、サーバーはホストのその後の接続をブロックします。ブロックされたホストは、ホストキャッシュをフラッシュしてブロック解除できます。これを行うには、
FLUSH HOSTS
ステートメントを発行するか、mysqladmin flush-hosts コマンドを実行します。以前の接続が中断されたあと、max_connect_errors
回の試行よりも少ない回数で接続が正常に確立された場合、ホストのエラーカウントはゼロにクリアされます。ただし、ホストがブロックされた場合、ホストキャッシュをフラッシュすることが、ホストのブロックを解除するためのただ 1 つの方法です。デフォルトは、MySQL 5.6.6 以降では 100 で、それより前では 10 です。 -
コマンド行形式 --max-connections=#
システム変数 max_connections
スコープ グローバル 動的 はい 型 整数 デフォルト 151
最小値 1
最大値 100000
許可される最大のクライアントの同時接続数。デフォルトでは、これは 151 です。詳細については、セクションB.5.2.7「接続が多すぎます」を参照してください。
この値を大きくすると、mysqld が要求するファイルディスクリプタの数が増加します。必要な数のディスクリプタが利用できない場合、サーバーは
max_connections
の値を削減します。ファイルディスクリプタの制限に関する解説は、セクション8.4.3.1「MySQL でのテーブルのオープンとクローズの方法」を参照してください。max_connections
制限に到達したことにより接続が拒否されると、Connection_errors_max_connections
ステータス変数が増加します。 -
コマンド行形式 --max-delayed-threads=#
非推奨 5.6.7 システム変数 max_delayed_threads
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 20
最小値 0
最大値 16384
非トランザクションテーブル用の
INSERT DELAYED
ステートメントを処理するには、この数を超えるスレッドを開始しないでください。すべてのINSERT DELAYED
スレッドが使用中になったあとで、データを新規テーブルに挿入しようとした場合、DELAYED
属性が指定されていない場合と同様に行が挿入されます。これを 0 に設定すると、MySQL はDELAYED
行を処理するスレッドを作成せず、実質的にDELAYED
が完全に無効になります。この変数の
SESSION
値について、有効な値は 0 またはGLOBAL
値のみです。MySQL 5.6.7 以降では、このシステム変数は非推奨となり (
DELAYED
挿入が非推奨となったため)、今後のリリースで削除される予定です。 -
コマンド行形式 --max-error-count=#
システム変数 max_error_count
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 64
最小値 0
最大値 65535
SHOW ERRORS
やSHOW WARNINGS
ステートメントで表示するために格納される、エラー、警告、および注記メッセージの最大数。これは診断領域内の条件領域の数と同じで、GET DIAGNOSTICS
によって調査できる条件数と同じです。 -
コマンド行形式 --max-heap-table-size=#
システム変数 max_heap_table_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 16777216
最小値 16384
最大値 (64 ビットプラットフォーム) 1844674407370954752
最大値 (32 ビットプラットフォーム) 4294967295
この変数は、ユーザーが作成した
MEMORY
テーブルの増加が許可される最大サイズを設定します。この変数の値はMEMORY
テーブルのMAX_ROWS
値を計算するために使用されます。この変数を設定しても、既存のMEMORY
テーブルに影響しませんが、CREATE TABLE
などのステートメントでテーブルを再作成したり、ALTER TABLE
またはTRUNCATE TABLE
でテーブルを変更したりした場合は影響します。サーバーを再起動しても、既存のMEMORY
テーブルの最大サイズがグローバルのmax_heap_table_size
値に設定されます。この変数は、内部インメモリーテーブルのサイズを制限するために
tmp_table_size
と一緒に使用されることもあります。セクション8.4.4「MySQL が内部一時テーブルを使用する仕組み」を参照してください。max_heap_table_size
は複製されません。詳しくは、セクション17.4.1.21「レプリケーションと MEMORY テーブル」およびセクション17.4.1.34「レプリケーションと変数」を参照してください。 -
非推奨 5.6.7 システム変数 max_insert_delayed_threads
スコープ グローバル、セッション 動的 はい 型 数値 この変数は、
max_delayed_threads
のシノニムです。MySQL 5.6.7 以降では、このシステム変数は非推奨となり (
DELAYED
挿入が非推奨となったため)、今後のリリースで削除される予定です。 -
コマンド行形式 --max-join-size=#
システム変数 max_join_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 18446744073709551615
最小値 1
最大値 18446744073709551615
検査が必要となる行数 (単一テーブルステートメントの場合) または行の組み合わせの数 (複数テーブルステートメントの場合) が、
max_join_size
をおそらく超えるか、ディスクシークがmax_join_size
回を超えて実行される可能性があるステートメントを許可しません。この値を設定することで、キーが適切に使用されず長い時間がかかりそうなステートメントをキャッチできます。ユーザーが、WHERE
句のない結合、長い時間がかかる結合、または数百万行を返す結合を実行する傾向がある場合にこれを設定します。この変数を
DEFAULT
以外の値に設定すると、sql_big_selects
の値が0
にリセットされます。sql_big_selects
値を再設定すると、max_join_size
変数は無視されます。クエリー結果がクエリーキャッシュ内にある場合、結果サイズの検査は実行されません。これは、結果は以前計算されており、結果をクライアントに送信するサーバーに負荷をかけないためです。
-
コマンド行形式 --max-length-for-sort-data=#
システム変数 max_length_for_sort_data
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 1024
最小値 4
最大値 8388608
使用する
filesort
アルゴリズムを決定するインデックス値のサイズの制限。セクション8.2.1.15「ORDER BY の最適化」を参照してください。 -
コマンド行形式 --max-prepared-stmt-count=#
システム変数 max_prepared_stmt_count
スコープ グローバル 動的 はい 型 数値 デフォルト 16382
最小値 0
最大値 1048576
この変数は、サーバー内のプリペアドステートメントの総数を制限します。(すべてのセッションでのプリペアドステートメントの合計数。)これは、大量のステートメントを作成することによってサーバーの実行するメモリーを不足させることに基づくサービス妨害攻撃の可能性がある環境で使用できます。値が現在のプリペアドステートメントの数より低く設定された場合、既存のステートメントは影響を受けずに使用できますが、現在の数が制限を下回るまで新しいステートメントを作成できません。デフォルト値は 16,382 です。許可される値の範囲は 0 から 100 万までです。値を 0 に設定すると、プリペアドステートメントが無効になります。
-
コマンド行形式 --max-relay-log-size=#
システム変数 max_relay_log_size
スコープ グローバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 1073741824
レプリケーションスレーブによるリレーログへの書き込みによって、現在のログファイルサイズがこの変数の値を超えた場合、スレーブはリレーログをローテーションします (現在のファイルを閉じて新しいファイルを開きます)。
max_relay_log_size
が 0 の場合、サーバーはバイナリログとリレーログの両方にmax_binlog_size
を使用します。max_relay_log_size
が 0 より大きい場合、リレーログのサイズを抑制し、2 つのログに異なるサイズを持たせることが可能になります。max_relay_log_size
を 4096 バイトと 1G バイト (両端の値を含む) の間に設定するか、0 にする必要があります。デフォルト値は 0 です。セクション17.2.1「レプリケーション実装の詳細」を参照してください。 -
コマンド行形式 --max-seeks-for-key=#
システム変数 max_seeks_for_key
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト (64 ビットプラットフォーム) 18446744073709551615
デフォルト (32 ビットプラットフォーム) 4294967295
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
キーに基づいて行を参照するとき、推定されるシークの最大数を制限します。MySQL オプティマイザは、インデックスをスキャンすることによってテーブル内で一致する行を検索するとき、インデックスの実際のカーディナリティーに関係なく、この数を超えるキーシークは不要であると推定します (セクション13.7.5.23「SHOW INDEX 構文」を参照してください)。これを低い値 (100 など) に設定することで、MySQL でテーブルスキャンよりもインデックスを優先するように強制できます。
-
コマンド行形式 --max-sort-length=#
システム変数 max_sort_length
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 1024
最小値 4
最大値 8388608
データ値をソートするときに使用するバイト数。それぞれの値の最初の
max_sort_length
バイトだけを使用し、残りは無視されます。MySQL 5.6.9 以降では、
max_sort_length
は整数、小数、浮動小数点数、および時間データ型について無視されます。 -
コマンド行形式 --max-sp-recursion-depth[=#]
システム変数 max_sp_recursion_depth
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 0
最大値 255
任意のストアドプロシージャーを再帰的に呼び出すことができる回数。このオプションのデフォルト値は 0 で、これはストアドプロシージャーの再帰を完全に無効化します。最大値は 255 です。
ストアドプロシージャーの再帰により、スレッドスタック領域の要求が増加します。
max_sp_recursion_depth
の値を増やした場合、サーバー起動時にthread_stack
の値を増やすことによってスレッドスタックサイズを増やすことが必要な場合もあります。 -
この変数は使用されません。これは MySQL 5.6.7 以降で非推奨となり、今後の MySQL リリースで削除されます。
-
コマンド行形式 --max-user-connections=#
システム変数 max_user_connections
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 4294967295
任意の MySQL ユーザーアカウントに許可された最大同時接続数。値 0 (デフォルト) は「制限なし」を意味します。
この変数は、サーバー起動時または実行時に設定できるグローバル値を持ちます。また、現在のセッションに関連付けられたアカウントに適用される、実際の同時接続制限を示す読み取り専用のセッション値も持ちます。セッション値は次のように初期化されます。
ユーザーアカウントの
MAX_USER_CONNECTIONS
リソース制限がゼロでない場合、セッションmax_user_connections
の値はその制限値に設定されます。そうでない場合、セッション
max_user_connections
の値はグローバル値に設定されます。
アカウントのリソース制限は
GRANT
ステートメントによって指定されます。セクション6.3.4「アカウントリソース制限の設定」およびセクション13.7.1.4「GRANT 構文」を参照してください。 -
コマンド行形式 --max-write-lock-count=#
システム変数 max_write_lock_count
スコープ グローバル 動的 はい 型 数値 デフォルト (64 ビットプラットフォーム) 18446744073709551615
デフォルト (32 ビットプラットフォーム) 4294967295
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
この大きさの書き込みロックのあと、保留中の読み取りロックリクエストの処理を間で許可します。
-
導入 5.6.4 システム変数 metadata_locks_cache_size
スコープ グローバル 動的 いいえ 型 数値 デフォルト 1024
最小値 1
最大値 1048576
メタデータロックキャッシュのサイズ。サーバーはこのキャッシュを使用して、同期オブジェクトの作成および破棄を回避します。これは、このような操作にコストがかかる、Windows XP などのシステムで特に役立ちます。この変数は MySQL 5.6.4 で追加されました。
-
導入 5.6.8 システム変数 metadata_locks_hash_instances
スコープ グローバル 動的 いいえ 型 数値 デフォルト 8
最小値 1
最大値 1024
一連のメタデータロックは別々のハッシュにパーティション化されて、別々のロックハッシュを使用して競合を削減するために使用する異なるオブジェクトにアクセスする接続が可能になります。
metadata_locks_hash_instances
システム変数は、ハッシュの数を指定します (デフォルトは 8)。この変数は MySQL 5.6.8 で追加されました。 -
コマンド行形式 --min-examined-row-limit=#
システム変数 min_examined_row_limit
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
これよりも少ない行数を検査するクエリーは、スロークエリーログに記録されません。
-
コマンド行形式 --multi-range-count=#
システム変数 multi_range_count
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 256
最小値 1
最大値 4294967295
範囲選択時にテーブルハンドラに一度に送信する範囲の最大数。デフォルト値は 256 です。複数の範囲をハンドラに一度に送信することで、一部の選択のパフォーマンスが劇的に向上します。これは
NDBCLUSTER
テーブルハンドラについて特に当てはまり、範囲リクエストをすべてのノードに送信する必要があります。これらのリクエストのバッチを一度に送信することで、通信コストが著しく低下します。この変数は MySQL 5.6.7 で削除されました。
-
コマンド行形式 --myisam-data-pointer-size=#
システム変数 myisam_data_pointer_size
スコープ グローバル 動的 はい 型 数値 デフォルト 6
最小値 2
最大値 7
MAX_ROWS
オプションが指定されていない場合にMyISAM
テーブルのCREATE TABLE
によって使用されるバイト単位のデフォルトポインタサイズ。この値を 2 より小さくしたり 7 より大きくしたりすることはできません。デフォルト値は 6 です。セクションB.5.2.12「テーブルが満杯です」を参照してください。 -
コマンド行形式 --myisam-max-sort-file-size=#
システム変数 myisam_max_sort_file_size
スコープ グローバル 動的 はい 型 数値 デフォルト (64 ビットプラットフォーム) 9223372036854775807
デフォルト (32 ビットプラットフォーム) 2147483648
MyISAM
インデックスを再作成するとき (REPAIR TABLE
、ALTER TABLE
、またはLOAD DATA INFILE
中に)、MySQL が使用を許可されている一時ファイルの最大サイズ。ファイルサイズがこの値より大きい場合、さらに低速なキーキャッシュを代わりに使用してインデックスが作成されます。値はバイト単位で指定されます。MyISAM
インデックスファイルがこのサイズを超えて、ディスクスペースが使用できる場合、この値を大きくするとパフォーマンスが向上することがあります。このスペースは、元のインデックスファイルが配置されているディレクトリを含むファイルシステム内で利用する必要があります。 -
コマンド行形式 --myisam-mmap-size=#
システム変数 myisam_mmap_size
スコープ グローバル 動的 いいえ 型 数値 デフォルト (64 ビットプラットフォーム) 18446744073709551615
デフォルト (32 ビットプラットフォーム) 4294967295
最小値 7
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
圧縮された
MyISAM
ファイルのメモリーマッピングに使用する最大のメモリー量。圧縮されたMyISAM
テーブルが多く使用される場合、この値を減らすことで、メモリースワッピングの問題が生じるおそれを低下できます。 -
システム変数 myisam_recover_options
スコープ グローバル 動的 いいえ --myisam-recover-options
オプションの値。セクション5.1.3「サーバーコマンドオプション」を参照してください。 -
コマンド行形式 --myisam-repair-threads=#
システム変数 myisam_repair_threads
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 1
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
この値が 1 より大きい場合、
MyISAM
テーブルインデックスはRepair by sorting
プロセス中に並列で作成されます (各インデックスはインデックス独自のスレッド内)。デフォルト値は 1 です。注記複数スレッドの修復は、まだベータ品質コードです。
-
コマンド行形式 --myisam-sort-buffer-size=#
システム変数 myisam_sort_buffer_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 8388608
最小値 4096
最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615
最大値 (その他, 32 ビットプラットフォーム) 4294967295
最大値 (Windows) 4294967295
REPAIR TABLE
中にMyISAM
インデックスをソートするときや、CREATE INDEX
またはALTER TABLE
を使用してインデックスを作成するときに割り当てられるバッファーのサイズ。myisam_sort_buffer_size
に対して許可される最大の設定値は 4G バイト − 1 です。64 ビットプラットフォームの場合は大きい値が許可されます (64 ビットの Windows の場合は例外で、大きい値は 4G バイト − 1 に切り捨てられて警告が出ます)。 -
コマンド行形式 --myisam-stats-method=name
システム変数 myisam_stats_method
スコープ グローバル、セッション 動的 はい 型 列挙 デフォルト nulls_unequal
有効な値 nulls_equal
nulls_unequal
nulls_ignored
MyISAM
テーブルのインデックス値の分布に関する統計を収集するときに、サーバーがNULL
値を扱う方法。この変数は、nulls_equal
、nulls_unequal
、およびnulls_ignored
の 3 つの値を指定できます。nulls_equal
の場合、すべてのNULL
インデックス値を同等として扱い、NULL
値の数とサイズが同等の単一値グループを生成します。nulls_unequal
の場合、NULL
値同士を同等として扱わず、それぞれのNULL
はサイズが 1 の別個のグループを生成します。nulls_ignored
の場合、NULL
値は無視されます。テーブル統計を生成するために使用する方法は、セクション8.3.7「InnoDB および MyISAM インデックス統計コレクション」に記載されているように、オプティマイザがクエリー実行のためのインデックスを選択する方法に影響を与えます。
-
コマンド行形式 --myisam-use-mmap
システム変数 myisam_use_mmap
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
MyISAM
テーブルの読み取りおよび書き込みでメモリーマッピングを使用します。 -
システム変数 named_pipe
スコープ グローバル 動的 いいえ プラットフォーム固有 Windows 型 ブール デフォルト OFF
(Windows のみ。)サーバーが名前付きパイプでの接続をサポートしているかどうかを指定します。
-
コマンド行形式 --net-buffer-length=#
システム変数 net_buffer_length
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 16384
最小値 1024
最大値 1048576
各クライアントスレッドは、接続バッファーおよび結果バッファーに関連付けられています。両者は
net_buffer_length
で与えられたサイズで開始されますが、必要に応じて、max_allowed_packet
バイトまで動的に拡大できます。結果バッファーは、各 SQL ステートメントのあとでnet_buffer_length
に縮小されます。この変数は通常は変更しませんが、メモリーが非常に少ない場合、クライアントによって送信される予想されるステートメントの長さに設定できます。ステートメントがこの長さを超えた場合、接続バッファーは自動的に拡大されます。
net_buffer_length
の最大値は 1M バイトに設定できます。この変数のセッションの値は、読み取り専用です。
-
コマンド行形式 --net-read-timeout=#
システム変数 net_read_timeout
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 30
最小値 1
読み取りを中止する前に接続からのデータを待機する秒数。サーバーがクライアントからの読み込みを行うとき、
net_read_timeout
は中止するタイミングを制御するタイムアウト値です。サーバーがクライアントに書き込みを行うとき、net_write_timeout
は中止するタイミングを制御するタイムアウト値です。slave_net_timeout
も参照してください。 -
コマンド行形式 --net-retry-count=#
システム変数 net_retry_count
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 10
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
通信ポートでの読み取りまたは書き込みが中断された場合、停止するまでこの回数だけ再試行します。FreeBSD では内部の中断がすべてのスレッドに送信されるため、この値をきわめて高く設定するようにしてください。
-
コマンド行形式 --net-write-timeout=#
システム変数 net_write_timeout
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 60
最小値 1
書き込みを中止する前にブロックが接続に書き込まれるのを待機する秒数。
net_read_timeout
も参照してください。 -
コマンド行形式 --new
システム変数 new
スコープ グローバル、セッション 動的 はい 無効化 skip-new
型 ブール デフォルト FALSE
この変数は、一部の 4.1 の動作をオンにするために MySQL 4.0 で使用されており、下位互換性のために保持されています。MySQL 5.6 では、この値は常に
OFF
です。 -
コマンド行形式 --old
システム変数 old
スコープ グローバル 動的 いいえ old
は互換性変数です。これはデフォルトでは無効化されていますが、以前のバージョンに存在した動作にサーバーを戻すために、起動時に有効にできます。現時点では、
old
が有効化された場合、インデックスヒントのデフォルトのスコープを、MySQL 5.1.17 以前に使用されていたものに変更します。つまり、FOR
句を使用しないインデックスヒントは、インデックスが行の取得に使用する方法についてのみ適用され、ORDER BY
句またはGROUP BY
句の解決には適用されません。(セクション13.2.9.3「インデックスヒントの構文」を参照してください。)レプリケーションのセットアップでこれを有効にする場合は注意してください。ステートメントベースのバイナリロギングで、マスターとスレーブに異なるモードを指定するとレプリケーションエラーが発生する場合があります。 -
コマンド行形式 --old-alter-table
システム変数 old_alter_table
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト OFF
この変数を有効にすると、サーバーは
ALTER TABLE
操作を処理する最適化された方法を使用しません。一時テーブルの使用に戻り、データのコピー後、MySQL 5.0 以前で使用されていたように、一時テーブルを元のテーブルの名前に変更します。ALTER TABLE
の操作について詳しくは、セクション13.1.7「ALTER TABLE 構文」を参照してください。 -
システム変数 old_passwords
スコープ グローバル、セッション 動的 はい 型 (≥ 5.6.6) 列挙 型 (≤ 5.6.5) ブール デフォルト 0
有効な値 0
1
2
この変数は、
PASSWORD()
関数によって使用されるパスワードハッシュ方式を制御します。これは、IDENTIFIED BY
句を使用してパスワードを指定するCREATE USER
およびGRANT
ステートメントによって実行されるパスワードハッシュにも影響します。次の表は、
old_passwords
の許可される値、それぞれの値に対するパスワードハッシュ方式、およびそれぞれの方式でハッシュされたパスワードを使用する認証プラグインを示します。これらの値は MySQL 5.6.6 以降で許可されます。5.6.6 より前では、許可される値は 0 (またはOFF
) および 1 (またはON
) です。値 パスワードハッシュ方式 関連付けられた認証プラグイン 0 MySQL 4.1 ネイティブハッシュ mysql_native_password
1 4.1 以前の (「古い」) ハッシュ mysql_old_password
2 SHA-256 ハッシュ sha256_password
old_passwords=1
の場合、PASSWORD(
はstr
)OLD_PASSWORD(
と同じ値を返します。後者の関数はstr
)old_passwords
の値によって影響を受けません。old_passwords=2
を設定する場合、セクション6.3.8.4「SHA-256 認証プラグイン」のsha256_password
プラグインを使用するための指示に従ってください。MySQL 5.6.6 以降では、サーバーは起動中に、デフォルトの認証プラグインによって必要となるパスワードハッシュ方式と整合性がとれるようにグローバルの
old_passwords
値を設定します。--default-authentication-plugin
オプションが別のものに設定されないかぎり、デフォルトプラグインはmysql_native_password
です。MySQL 5.6.10 以降では、クライアントがサーバーに正常に接続すると、サーバーはアカウント認証方式について適切なセッション
old_passwords
値を設定します。たとえば、アカウントがsha256_password
認証プラグインを使用する場合、サーバーはold_passwords=2
を設定します。認証プラグインおよびハッシュ形式についての追加情報は、セクション6.3.7「プラガブル認証」およびセクション6.1.2.4「MySQL でのパスワードハッシュ」を参照してください。
注記4.1 より前のハッシュ方式を使用するパスワードはネイティブのパスワードハッシュ方式を使用するパスワードよりもセキュアでないため、使用しないようにしてください。4.1 よりも前のパスワードは非推奨であり、これらのサポートは今後の MySQL リリースで削除される予定です。その結果、
PASSWORD()
で 4.1 以前のパスワードハッシュを生成するold_passwords=1
も非推奨となります。アカウントのアップグレード手順については、セクション6.3.8.3「4.1 よりも前のパスワードハッシュ方式と mysql_old_password プラグインからの移行」を参照してください。 -
コマンド行形式 --open-files-limit=#
システム変数 open_files_limit
スコープ グローバル 動的 いいえ 型 数値 デフォルト (≥ 5.6.8) 5000, with possible adjustment
デフォルト (≤ 5.6.7) 0
最小値 0
最大値 platform dependent
オペレーティングシステムで mysqld が開くことを許可するファイル数。実行時でのこの変数の値はシステムによって許可される実際の値であるため、サーバー起動時に指定した値と異なる場合があります。MySQL がオープンファイルの数を変更できないシステムでは、値は 0 です。
実際の
open_files_limit
の値は、システム起動時に指定された値 (ある場合) と、max_connections
およびtable_open_cache
の値に基づき、次の式を使用します。1) 10 + max_connections + (table_open_cache * 2) 2) max_connections * 5 3) open_files_limit value specified at startup, 5000 if none
サーバーはこれらの 3 つの値の最大値を使用して、ファイルディスクリプタの数を取得しようとします。その数のディスクリプタが取得できない場合、サーバーはシステムに許可されるできるだけ多くの数を取得しようとします。
-
コマンド行形式 --optimizer-join-cache-level=#
導入 5.6.1 削除 5.6.3 システム変数 optimizer_join_cache_level
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 4
最小値 0
最大値 4
MySQL 5.6.3 より前では、この変数は結合バッファー管理に使用されます。これは結合操作のための結合バッファーの使用法を制御します。MySQL 5.6.3 以降では、これは削除されて
optimizer_switch
変数が代わりに使用されます。セクション8.2.1.14「Block Nested Loop 結合と Batched Key Access 結合」を参照してください。次の表は、許可される
optimizer_join_cache_level
値を示します。オプション 説明 0
すべての結合操作で結合バッファーは使用されません。この設定は、結合バッファリングの使用を可能にする非ゼロ値でのパフォーマンスと比較した、結合の基準パフォーマンスの評価に役立てることができます。 1
これはデフォルト値です。結合バッファーは、元の Block Nested-Loop (BNL) 結合アルゴリズムによって実行される内部結合についてのみ利用されます。このアルゴリズムが適用された場合、内部テーブルの行は、テーブルスキャン、単純インデックススキャン、または範囲インデックススキャンによってアクセスされます。 2
サーバーは、その最初のオペランドが結合バッファー自体を使用する結合操作によって生成される場合、結合操作に対して増分結合バッファーを使用します。 3
1 つの内部テーブルを持つ外部結合操作および内部結合について、BNL アルゴリズムが使用されます。 4
BNL アルゴリズムは、内部テーブルに対して増分バッファーを使用します。この場合、BNL アルゴリズムはネストされた外部結合 (いくつかの内部テーブルを持つ外部結合) について使用できます。このような操作は、最初のものを除くすべての内部テーブルを結合するために増分結合バッファーが使用される場合にのみ実行できます。 -
コマンド行形式 --optimizer-prune-level[=#]
システム変数 optimizer_prune_level
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト 1
見込みのない部分的プランをオプティマイザ検索スペースから削除するために、クエリー最適化中に適用される経験則を制御します。値 0 は、オプティマイザが網羅的な検索を実行できるよう経験則を無効にします。値 1 は、中間プランによって取得された行の数に基づいて、オプティマイザにプランを削除させます。
-
コマンド行形式 --optimizer-search-depth[=#]
システム変数 optimizer_search_depth
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 62
最小値 0
最大値 62
クエリーオプティマイザによって実行される検索の最大の深さ。クエリー内の関係の数より値が大きいと、適切なクエリー計画が得られますが、クエリーの実行計画の生成に時間がかかります。クエリー内の関係の数より値が小さいと、実行プランがすばやく返されますが、結果のプランがまったく最適にならないことがあります。0 に設定された場合、システムは合理的な値を自動的に選択します。
-
コマンド行形式 --optimizer-switch=value
システム変数 optimizer_switch
スコープ グローバル、セッション 動的 はい 型 セット 有効な値 (≥ 5.6.9) batched_key_access={on|off}
block_nested_loop={on|off}
engine_condition_pushdown={on|off}
firstmatch={on|off}
index_condition_pushdown={on|off}
index_merge={on|off}
index_merge_intersection={on|off}
index_merge_sort_union={on|off}
index_merge_union={on|off}
loosescan={on|off}
materialization={on|off}
mrr={on|off}
mrr_cost_based={on|off}
semijoin={on|off}
subquery_materialization_cost_based={on|off}
use_index_extensions={on|off}
有効な値 (≥ 5.6.7, ≤ 5.6.8) batched_key_access={on|off}
block_nested_loop={on|off}
engine_condition_pushdown={on|off}
firstmatch={on|off}
index_condition_pushdown={on|off}
index_merge={on|off}
index_merge_intersection={on|off}
index_merge_sort_union={on|off}
index_merge_union={on|off}
loosescan={on|off}
materialization={on|off}
mrr={on|off}
mrr_cost_based={on|off}
semijoin={on|off}
subquery_materialization_cost_based={on|off}
有効な値 (≥ 5.6.5, ≤ 5.6.6) batched_key_access={on|off}
block_nested_loop={on|off}
engine_condition_pushdown={on|off}
firstmatch={on|off}
index_condition_pushdown={on|off}
index_merge={on|off}
index_merge_intersection={on|off}
index_merge_sort_union={on|off}
index_merge_union={on|off}
loosescan={on|off}
materialization={on|off}
mrr={on|off}
mrr_cost_based={on|off}
semijoin={on|off}
有効な値 (≥ 5.6.3, ≤ 5.6.4) batched_key_access={on|off}
block_nested_loop={on|off}
engine_condition_pushdown={on|off}
index_condition_pushdown={on|off}
index_merge={on|off}
index_merge_intersection={on|off}
index_merge_sort_union={on|off}
index_merge_union={on|off}
mrr={on|off}
mrr_cost_based={on|off}
有効な値 (≥ 5.6.1, ≤ 5.6.2) engine_condition_pushdown={on|off}
index_condition_pushdown={on|off}
index_merge={on|off}
index_merge_intersection={on|off}
index_merge_sort_union={on|off}
index_merge_union={on|off}
mrr={on|off}
mrr_cost_based={on|off}
有効な値 (5.6.0) engine_condition_pushdown={on|off}
index_merge={on|off}
index_merge_intersection={on|off}
index_merge_sort_union={on|off}
index_merge_union={on|off}
optimizer_switch
システム変数を使用するとオプティマイザの動作を制御できます。この変数の値はフラグのセットで、各フラグは対応するオプティマイザの動作の有効または無効を示すon
またはoff
を値を持ちます。この変数はグローバル値およびセッション値を持ち、実行時に変更できます。グローバル値のデフォルトはサーバーの起動時に設定できます。オプティマイザの現在のフラグセットを表示するには、変数値を選択します。
mysql> SELECT @@optimizer_switch\G *************************** 1. row *************************** @@optimizer_switch: index_merge=on,index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, engine_condition_pushdown=on, index_condition_pushdown=on, mrr=on,mrr_cost_based=on, block_nested_loop=on,batched_key_access=off, materialization=on,semijoin=on,loosescan=on, firstmatch=on, subquery_materialization_cost_based=on, use_index_extensions=on
この変数の構文と、制御するオプティマイザの動作の詳細については、セクション8.8.5.2「切り替え可能な最適化の制御」を参照してください。
-
導入 5.6.3 システム変数 optimizer_trace
スコープ グローバル、セッション 動的 はい 型 文字列 この変数はオプティマイザのトレースを制御します。詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。この変数は MySQL 5.6.3 で追加されました。
-
導入 5.6.3 システム変数 optimizer_trace_features
スコープ グローバル、セッション 動的 はい 型 文字列 この変数は選択されたオプティマイザトレース機能を有効または無効にします。詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。この変数は MySQL 5.6.3 で追加されました。
-
導入 5.6.3 システム変数 optimizer_trace_limit
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 1
表示するオプティマイザトレースの最大数。詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。この変数は MySQL 5.6.3 で追加されました。
-
導入 5.6.3 システム変数 optimizer_trace_max_mem_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 16384
格納されるオプティマイザトレースの最大累積サイズ。詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。この変数は MySQL 5.6.3 で追加されました。
-
導入 5.6.3 システム変数 optimizer_trace_offset
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト -1
表示するオプティマイザトレースのオフセット。詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。この変数は MySQL 5.6.3 で追加されました。
-
performance_schema_
xxx
パフォーマンススキーマのシステム変数は、セクション22.12「パフォーマンススキーマシステム変数」にリストされています。これらの変数は、パフォーマンススキーマ操作を構成するために使用されることもあります。
-
コマンド行形式 --pid-file=file_name
システム変数 pid_file
スコープ グローバル 動的 いいえ 型 ファイル名 プロセス ID (PID) ファイルのパス名。この変数は、
--pid-file
オプションで設定できます。 -
コマンド行形式 --plugin-dir=path
システム変数 plugin_dir
スコープ グローバル 動的 いいえ 型 ディレクトリ名 デフォルト BASEDIR/lib/plugin
プラグインディレクトリのパス名。
プラグインディレクトリがサーバーによって書き込み可能な場合、ユーザーは
SELECT ... INTO DUMPFILE
を使用して、ディレクトリ内のファイルに実行可能コードを書き込むことができます。これを防ぐために、plugin_dir
をサーバーに対して読み取り専用にしたり、SELECT
書き込みが安全に実行できるディレクトリに--secure-file-priv
を設定したりできます。 -
コマンド行形式 --port=#
システム変数 port
スコープ グローバル 動的 いいえ 型 数値 デフォルト 3306
最小値 0
最大値 65535
サーバーが TCP/IP 接続を listen するポートの数。この変数は、
--port
オプションで設定できます。 -
コマンド行形式 --preload-buffer-size=#
システム変数 preload_buffer_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 32768
最小値 1024
最大値 1073741824
インデックスをプリロードしたときに割り当てられるバッファーのサイズ。
-
0 または
OFF
(デフォルト) に設定した場合、ステートメントのプロファイリングは無効になります。1 またはON
に設定した場合、ステートメントのプロファイリングは有効になり、SHOW PROFILE
およびSHOW PROFILES
ステートメントはプロファイリング情報へのアクセスを提供します。セクション13.7.5.32「SHOW PROFILES 構文」を参照してください。この変数は MySQL 5.6.8 で非推奨となり、将来の MySQL リリースで削除されます。
-
profiling
が有効な場合にプロファイリング情報を保持する対象となるステートメントの数。デフォルト値は 15 です。最大値は 100 です。値を 0 に設定すると、プロファイリングは実質的に無効になります。セクション13.7.5.32「SHOW PROFILES 構文」を参照してください。この変数は MySQL 5.6.8 で非推奨となり、将来の MySQL リリースで削除されます。
-
システム変数 protocol_version
スコープ グローバル 動的 いいえ 型 数値 MySQL Server によって使用されるクライアント/サーバープロトコルのバージョン。
-
システム変数 proxy_user
スコープ セッション 動的 いいえ 型 文字列 現在のクライアントが別のユーザーのプロキシの場合、この変数はプロキシユーザーのアカウント名です。そうでない場合、この変数は
NULL
です。セクション6.3.9「プロキシユーザー」を参照してください。 -
導入 5.6.10 システム変数 pseudo_slave_mode
スコープ セッション 動的 はい 型 数値 この変数は内部サーバーで使用します。これは MySQL 5.6.10 で追加されました。
-
システム変数 pseudo_thread_id
スコープ セッション 動的 はい 型 数値 この変数は内部サーバーで使用します。
-
コマンド行形式 --query-alloc-block-size=#
システム変数 query_alloc_block_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 8192
最小値 1024
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
ステートメントの解析および実行中に作成されるオブジェクトに対して割り当てられるメモリーブロックの割り当てサイズ。メモリーのフラグメント化について問題がある場合、このパラメータを増やすと役立つ場合があります。
-
コマンド行形式 --query-cache-limit=#
システム変数 query_cache_limit
スコープ グローバル 動的 はい 型 数値 デフォルト 1048576
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
このバイト数より大きい結果をキャッシュしません。デフォルト値は 1M バイトです。
-
コマンド行形式 --query-cache-min-res-unit=#
システム変数 query_cache_min_res_unit
スコープ グローバル 動的 はい 型 数値 デフォルト 4096
最小値 512
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
クエリーキャッシュによって割り当てられたブロックの最小サイズ (バイト単位)。デフォルト値は 4096 (4K バイト) です。この変数の調整についての情報は、セクション8.9.3.3「クエリーキャッシュの構成」に提供されています。
-
コマンド行形式 --query-cache-size=#
システム変数 query_cache_size
スコープ グローバル 動的 はい 型 数値 デフォルト (64 ビットプラットフォーム, ≥ 5.6.8) 1048576
デフォルト (64 ビットプラットフォーム, ≤ 5.6.7) 0
デフォルト (32 ビットプラットフォーム, ≥ 5.6.8) 1048576
デフォルト (32 ビットプラットフォーム, ≤ 5.6.7) 0
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
クエリー結果をキャッシュするために割り当てられたメモリーの量。デフォルトでは、クエリーキャッシュは無効化されます。これはデフォルト値の 1M と、
query_cache_type
のデフォルトの 0 を使用することによって実行できます。(MySQL 5.6.8 より前では、デフォルトサイズは 0 で、デフォルトのquery_cache_type
は 1 です。クエリーキャッシュを使用しない場合、オーバーヘッドを大幅に削減するにはquery_cache_type=0
でサーバーを開始する必要もあります。)許可される値は 1024 の倍数で、その他の値はもっとも近い倍数に切り下げられます。
query_cache_type
が 0 に設定されても、query_cache_size
バイトのメモリーは割り当てられることに注意してください。詳細については、セクション8.9.3.3「クエリーキャッシュの構成」を参照してください。クエリーキャッシュはその構造を割り当てるために最低約 40K バイトのサイズが必要です。(正確なサイズはシステムアーキテクチャーによります。)
query_cache_size
の値を小さく設定しすぎると、セクション8.9.3.3「クエリーキャッシュの構成」に記載されているような警告が発生します。 -
コマンド行形式 --query-cache-type=#
システム変数 query_cache_type
スコープ グローバル、セッション 動的 はい 型 列挙 デフォルト (≥ 5.6.8) 0
デフォルト (≤ 5.6.7) 1
有効な値 0
1
2
クエリーキャッシュタイプを設定します。
GLOBAL
値を設定すると、これ以降に接続するクライアントのタイプが設定されます。個別のクライアントはSESSION
値を設定することで、クエリーキャッシュの独自の使用に影響を及ぼします。設定可能な値を次の表に示します。オプション 説明 0
またはOFF
クエリーキャッシュに結果をキャッシュしたり、クエリーキャッシュから結果を取得したりしません。これはクエリーキャッシュバッファーを割り当て解除しません。これを行うには query_cache_size
を 0 に設定します。1
またはON
SELECT SQL_NO_CACHE
で始まるものを除くキャッシュ可能なすべてのクエリー結果をキャッシュします。2
またはDEMAND
SELECT SQL_CACHE
で始まるキャッシュ可能なクエリーのみ結果をキャッシュします。この変数のデフォルトは、MySQL 5.6.8 以降では
OFF
で、それより前はON
です。query_cache_type
を 0 に設定してサーバーを開始した場合、クエリーキャッシュ相互排他ロックを取得できません。これは、クエリーキャッシュを実行時に有効化できず、クエリー実行のオーバーヘッドが削減されることを意味します。 -
コマンド行形式 --query-cache-wlock-invalidate
システム変数 query_cache_wlock_invalidate
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト FALSE
通常、あるクライアントが
MyISAM
テーブルのWRITE
ロックを獲得した場合、クエリー結果がクエリーキャッシュ内にあると、別のクライアントがそのテーブルから読み取るステートメントの発行はブロックされません。この値を 1 にした場合、テーブルに対するWRITE
ロックが獲得されて、そのテーブルを参照するクエリーキャッシュ内のすべてのクエリーが無効化されます。これにより、そのテーブルにアクセスしようとするほかのクライアントは、ロック有効時に待機するよう強制されます。 -
コマンド行形式 --query-prealloc-size=#
システム変数 query_prealloc_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 8192
最小値 8192
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
ステートメントの解析および実行に使用される永続バッファーのサイズ。このバッファーは、ステートメント間で解放されません。複雑なクエリーを発行する場合、
query_prealloc_size
の値を大きくすると、クエリー実行操作時にサーバーがメモリー割り当てを実行する必要性が低くなるため、パフォーマンスの向上に役立つ場合があります。 -
rand_seed1
およびrand_seed2
変数は、セッション変数としてのみ存在し、設定はできますが読み取ることはできません。変数はSHOW VARIABLES
の出力に表示されますが、その値は表示されません。これらの変数の目的は、
RAND()
関数のレプリケーションをサポートすることです。RAND()
を呼び出すステートメントでは、マスターは 2 つの値をスレーブに渡し、スレーブではこれらの値は乱数ジェネレータにシードを指定するために使用されます。スレーブはこれらの値を使用して、セッション変数rand_seed1
およびrand_seed2
を設定し、スレーブのRAND()
はマスターと同じ値を生成します。 -
rand_seed1
の説明を参照してください。 -
コマンド行形式 --range-alloc-block-size=#
システム変数 range_alloc_block_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト (64 ビットプラットフォーム) 2048
デフォルト (64 ビットプラットフォーム) 4096
デフォルト (32 ビットプラットフォーム) 4096
デフォルト (32 ビットプラットフォーム) 2048
最小値 (64 ビットプラットフォーム) 2048
最小値 (64 ビットプラットフォーム) 4096
最小値 (32 ビットプラットフォーム) 4096
最小値 (32 ビットプラットフォーム) 2048
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (64 ビットプラットフォーム) 18446744073709547520
最大値 (32 ビットプラットフォーム) 4294967295
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
範囲の最適化を行うときに割り当てられるブロックのサイズ。
-
コマンド行形式 --read-buffer-size=#
システム変数 read_buffer_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 131072
最小値 8200
最大値 2147479552
MyISAM
テーブルの順次スキャンを実行する各スレッドは、スキャンする各テーブルにこのサイズ (バイト単位) のバッファーを割り当てます。多くの順次スキャンを実行する場合、この値を増やした方がよい場合もあり、デフォルトは 131072 です。この変数の値は 4K バイトの倍数にしてください。これが 4K バイトの倍数でない値に設定された場合、値は 4K バイトにもっとも近い倍数に切り下げられます。このオプションは、すべての検索エンジンの次のコンテキストでも使用されます。
ORDER BY
で行をソートするとき、インデックスを一時ファイル (一時テーブルではない) にキャッシュする場合。パーティションに一括挿入する場合。
ネストされたクエリーの結果をキャッシュする場合。
さらに、ストレージエンジンに固有の 1 つの方法、つまり
MEMORY
テーブルのメモリーブロックサイズを決定するためにも使用されます。read_buffer_size
で許可される最大の設定は 2G バイトです。さまざまな操作中でのメモリー使用についての詳細は、セクション8.11.4.1「MySQL のメモリーの使用方法」を参照してください。
-
コマンド行形式 --read-only
システム変数 read_only
スコープ グローバル 動的 はい 型 ブール デフォルト false
この変数はデフォルトでオフにされています。これが有効にされた場合、サーバーは
SUPER
権限を持つユーザーか、(スレーブサーバー上で) スレーブスレッドによって実行される更新を除く更新を許可しません。レプリケーションセットアップでは、スレーブサーバーでread_only
を有効にして、スレーブがマスターサーバーからの更新のみ受け入れ、クライアントからは受け入れないようにすると便利です。read_only
はTEMPORARY
テーブルに適用されず、サーバーがログテーブルに行を挿入しないようにすることもできません (セクション5.2.1「一般クエリーログおよびスロークエリーログの出力先の選択」を参照してください)。この変数の目的は、テーブルの構造または内容への変更を防ぐことであるため、ANALYZE TABLE
またはOPTIMIZE TABLE
ステートメントの使用を妨げることはありません。分析および最適化は、そのような変更の条件を備えていません。つまり、例を挙げると、読み取り専用スレーブでの一貫性検査は、mysqlcheck --all-databases --analyze を使用して実行できるということを意味します。read_only
はGLOBAL
変数としてのみ存在するため、値を変更するにはSUPER
権限が必要です。マスターサーバー上でのread_only
への変更は、スレーブサーバーに複製されません。マスター上での設定に関係なく、値をスレーブサーバー上で設定できます。重要MySQL 5.6 で、
read_only
を有効にすると、SUPER
権限を持っていないすべてのユーザーは、SET PASSWORD
ステートメントを使用できなくなります。これは必ずしもすべての MySQL リリースシリーズに当てはまるわけではありません。1 つの MySQL リリースシリーズから別のリリースシリーズ (たとえば、MySQL 5.0 マスターから MySQL 5.1 あるいはそれ以降のスレーブ) にレプリケーションするとき、マスターとスレーブの両方が実行するバージョンのドキュメントを確認し、このread_only
の動作が同じか同じでないかを判定し、異なる場合は、アプリケーションに影響があるかどうかを調べます。次の条件が適用されます。
明示的なロック (
LOCK TABLES
で取得) または保留中のトランザクションがある場合にread_only
を有効にしようとすると、エラーが発生します。他のクライアントが明示的なテーブルロックを保持しているか、保留中のトランザクションを持っている場合に
read_only
の有効化を試行すると、ロックが解放されてトランザクションが終了するまで試行がブロックされます。read_only
の有効化の試行が保留されているとき、ほかのクライアントによるテーブルロックあるいはトランザクションの開始のリクエストもまたread_only
が設定されるまでブロックされます。グローバル読み取りロック (
FLUSH TABLES WITH READ LOCK
で取得) にはテーブルロックが含まれていないため、read_only
を有効化できます。
MySQL 5.6 で、メタデータロックを保持するアクティブなトランザクションに対して
read_only
を設定する試行は、それらのトランザクションが終了するまでブロックされます。 -
コマンド行形式 --read-rnd-buffer-size=#
システム変数 read_rnd_buffer_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 262144
最小値 1
最大値 2147483647
この変数は、
MyISAM
テーブルからの読み取り、ストレージエンジン、および Multi-Range Read の最適化のために使用されます。キーソート操作のあとで、
MyISAM
テーブルの行をソート順に読み取るとき、ディスクシークを回避するため行はこのバッファーから読み取られます。セクション8.2.1.15「ORDER BY の最適化」を参照してください。この変数を大きい値に設定すると、ORDER BY
のパフォーマンスを大幅に向上できます。ただし、これは各クライアントに割り当てられるバッファーであるため、グローバル変数を大きい値に設定しないでください。代わりに、大規模なクエリーを実行する必要があるクライアント内からのみセッション変数を変更します。read_rnd_buffer_size
の許可される最大の設定は 2G バイトです。さまざまな操作中でのメモリー使用についての詳細は、セクション8.11.4.1「MySQL のメモリーの使用方法」を参照してください。Multi-Range Read の最適化については、セクション8.2.1.13「Multi-Range Read の最適化」を参照してください。
-
コマンド行形式 --relay-log-purge
システム変数 relay_log_purge
スコープ グローバル 動的 はい 型 ブール デフォルト TRUE
リレーログファイルが不要になったときに自動的にパージするよう無効または有効にします。デフォルト値は 1 (
ON
) です。 -
コマンド行形式 --relay-log-space-limit=#
システム変数 relay_log_space_limit
スコープ グローバル 動的 いいえ 型 数値 デフォルト 0
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
すべてのリレーログに使用するスペースの最大量。
-
コマンド行形式 --report-host=host_name
システム変数 report_host
スコープ グローバル 動的 いいえ 型 文字列 --report-host
オプションの値。 -
コマンド行形式 --report-password=name
システム変数 report_password
スコープ グローバル 動的 いいえ 型 文字列 --report-password
オプションの値。MySQL レプリケーションユーザーアカウントについて使用されるパスワードと同じではありません。 -
コマンド行形式 --report-port=#
システム変数 report_port
スコープ グローバル 動的 いいえ 型 数値 デフォルト (≥ 5.6.5) [slave_port]
デフォルト (≤ 5.6.4) 0
最小値 0
最大値 65535
--report-port
オプションの値。 -
コマンド行形式 --report-user=name
システム変数 report_user
スコープ グローバル 動的 いいえ 型 文字列 --report-user
オプションの値。MySQL レプリケーションユーザーアカウントについての名前と同じではありません。 -
システム変数 rpl_semi_sync_master_enabled
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
準同期レプリケーションがマスター上で有効かどうかを制御します。プラグインを有効または無効にするには、この変数を
ON
またはOFF
(あるいは 1 または 0) にそれぞれ設定します。デフォルトはOFF
です。この変数は、マスター側の準同期レプリケーションプラグインがインストールされている場合のみ利用できます。
-
システム変数 rpl_semi_sync_master_timeout
スコープ グローバル 動的 はい 型 数値 デフォルト 10000
タイムアウトが発生して非同期レプリケーションに戻すまでに、スレーブからの肯定応答のコミットをマスターが待機する時間を制御する、ミリ秒単位の値。デフォルト値は 10000 (10 秒) です。
この変数は、マスター側の準同期レプリケーションプラグインがインストールされている場合のみ利用できます。
-
rpl_semi_sync_master_trace_level
システム変数 rpl_semi_sync_master_trace_level
スコープ グローバル 動的 はい 型 数値 デフォルト 32
マスターの準同期レプリケーションデバッグトレースレベル。現在は 4 つのレベルが定義されています。
1 = 一般レベル (時間関数の失敗など)
16 = 詳細レベル (詳細情報)
32 = ネット待機レベル (ネットワーク待機についての詳細情報)
64 = 関数レベル (関数の入口および出口についての情報)
この変数は、マスター側の準同期レプリケーションプラグインがインストールされている場合のみ利用できます。
-
rpl_semi_sync_master_wait_no_slave
システム変数 rpl_semi_sync_master_wait_no_slave
スコープ グローバル 動的 はい 型 ブール デフォルト ON
準同期レプリケーションでは、各トランザクションについて、マスターはいずれかの準同期スレーブからの受け取りの認証を、タイムアウトになるまで待機します。この期間中に応答がなければ、マスターは通常のレプリケーションに戻ります。この変数は、タイムアウト期間中にスレーブカウントが減少してゼロになったとしても、マスターは通常のレプリケーションに戻る前に、タイムアウトが終了するまで待機するかどうかを制御します。
値が
ON
(デフォルト) の場合、タイムアウト期間中に (たとえばスレーブが未接続となった場合)、スレーブカウントが減少してゼロになるよう許可されます。マスターは引き続きタイムアウトを待機しているため、タイムアウト期間中にいずれかのスレーブが再接続してトランザクションを認証した場合、準同期レプリケーションは続行します。値が
OFF
の場合、タイムアウト期間中にスレーブカウントが減少してゼロになると、マスターは通常のレプリケーションに戻ります。この変数は、マスター側の準同期レプリケーションプラグインがインストールされている場合のみ利用できます。
-
システム変数 rpl_semi_sync_slave_enabled
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
準同期レプリケーションをスレーブ上で有効にするかどうかを制御します。プラグインを有効または無効にするには、この変数を
ON
またはOFF
(あるいは 1 または 0) にそれぞれ設定します。デフォルトはOFF
です。この変数は、スレーブ側の準同期レプリケーションプラグインがインストールされている場合にのみ利用できます。
-
rpl_semi_sync_slave_trace_level
システム変数 rpl_semi_sync_slave_trace_level
スコープ グローバル 動的 はい 型 数値 デフォルト 32
スレーブの準同期レプリケーションデバッグトレースレベル。許可できる値については、
rpl_semi_sync_master_trace_level
を参照してください。この変数は、スレーブ側の準同期レプリケーションプラグインがインストールされている場合にのみ利用できます。
-
コマンド行形式 --secure-auth
システム変数 secure_auth
スコープ グローバル 動的 はい 型 ブール デフォルト (≥ 5.6.5) ON
デフォルト (≤ 5.6.4) OFF
この変数が有効な場合、サーバーは、古い (4.1 以前の) 形式で格納されているパスワードを持つアカウントを使用しようとしたクライアントの接続をブロックします。
古い形式を使用したパスワードの使用 (セキュリティー保護されていないネットワーク上での通信) を防ぐには、この変数を有効にします。MySQL 5.6.5 より前では、この変数はデフォルトで無効です。MySQL 5.6.5 以降では、これはデフォルトで有効です。
この変数が有効で、権限テーブルが 4.1 以前の形式である場合、サーバーの起動が失敗します。セクションB.5.2.4「クライアントは認証プロトコルに対応できません」を参照してください。
注記4.1 より前のハッシュ方式を使用するパスワードはネイティブのパスワードハッシュ方式を使用するパスワードよりもセキュアでないため、使用しないようにしてください。4.1 よりも前のパスワードは非推奨であり、これらのサポートは今後の MySQL リリースで削除される予定です。そのため、
secure_auth
の無効化も非推奨です。 -
コマンド行形式 --secure-file-priv=path
システム変数 secure_file_priv
スコープ グローバル 動的 いいえ 型 文字列 デフォルトでは、この変数は空です。ディレクトリの名前に設定すると、
LOAD_FILE()
関数と、LOAD DATA
およびSELECT ... INTO OUTFILE
ステートメントの効果を制限し、そのディレクトリ内のファイルにのみ機能します。 -
コマンド行形式 --server-id=#
システム変数 server_id
スコープ グローバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 4294967295
マスターおよびスレーブそれぞれに一意の識別子を付与するレプリケーションで使用されるサーバー ID。この変数は、
--server-id
オプションによって設定されます。レプリケーションに参加する各サーバーは、そのサーバーの ID となる 1 から 232 − 1 の範囲の正の整数を、選択します。 -
sha256_password_private_key_path
導入 5.6.6 システム変数 sha256_password_private_key_path
スコープ グローバル 動的 いいえ 型 ファイル名 デフォルト private_key.pem
sha256_password
認証プラグイン用の RSA 秘密鍵ファイルのパス名。ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。ファイルは PEM 形式である必要があります。このファイルは秘密鍵を格納しているため、MySQL Server のみがファイルを読み取りできるようにファイルのアクセスモードを制限します。RSA 鍵ファイルの作成の説明を含む
sha256_password
についての情報は、セクション6.3.8.4「SHA-256 認証プラグイン」を参照してください。この変数は、MySQL が OpenSSL を使用して構築されている場合のみ利用できます。これは MySQL 5.6.6 で追加されました。(MySQL Community Edition は yaSSL を使用して構築されています。)
-
sha256_password_public_key_path
導入 5.6.6 システム変数 sha256_password_public_key_path
スコープ グローバル 動的 いいえ 型 ファイル名 デフォルト public_key.pem
sha256_password
認証プラグイン用の RSA 公開鍵ファイルのパス名。ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。ファイルは PEM 形式である必要があります。このファイルは公開鍵を格納しているため、クライアントユーザーに対してコピーを自由に配布できます。(RSA パスワード暗号化を使用してサーバーに接続するときに公開鍵を明示的に指定するクライアントは、サーバーで使用されるものと同じ公開鍵を使用する必要があります。)RSA 鍵ファイルの作成と、クライアントが RSA 公開鍵を指定する方法についての説明を含む、
sha256_password
についての情報は、セクション6.3.8.4「SHA-256 認証プラグイン」を参照してください。この変数は、MySQL が OpenSSL を使用して構築されている場合のみ利用できます。これは MySQL 5.6.6 で追加されました。(MySQL Community Edition は yaSSL を使用して構築されています。)
-
コマンド行形式 --shared-memory-base-name=name
システム変数 shared_memory
スコープ グローバル 動的 いいえ プラットフォーム固有 Windows (Windows のみ。)サーバーが共有メモリー接続を許可するかどうか。
-
システム変数 shared_memory_base_name
スコープ グローバル 動的 いいえ プラットフォーム固有 Windows (Windows のみ。)共有メモリー接続に使用する共有メモリーの名前。これは、単一の物理マシン上で複数の MySQL インスタンスを実行する場合に便利です。デフォルト名は
MYSQL
です。名前は大文字と小文字を区別します。 -
コマンド行形式 --skip-external-locking
システム変数 skip_external_locking
スコープ グローバル 動的 いいえ 型 ブール デフォルト ON
これは、mysqld が外部ロック (システムロック) を使用する場合は
OFF
で、外部ロックが無効な場合はON
です。これは、MyISAM
テーブルアクセスにのみ影響します。この変数は、
--external-locking
または--skip-external-locking
オプションによって設定されます。MySQL 4.0 以降では、外部ロックはデフォルトで無効化されています。外部ロックは
MyISAM
テーブルアクセスにのみ影響します。使用できるまたはできない状況も含めた詳細情報については、セクション8.10.5「外部ロック」を参照してください。 -
コマンド行形式 --skip-name-resolve
システム変数 skip_name_resolve
スコープ グローバル 動的 いいえ 型 ブール デフォルト OFF
この変数は、
--skip-name-resolve
オプションの値から設定されます。これがOFF
の場合、mysqld はクライアント接続を検査するときにホスト名を解決します。これがON
の場合、mysqld は IP 番号のみを使用し、この状況では、付与テーブル内のすべてのHost
カラム値が IP アドレスまたはlocalhost
である必要があります。セクション8.11.5.2「DNS ルックアップの最適化とホストキャッシュ」を参照してください。 -
コマンド行形式 --skip-networking
システム変数 skip_networking
スコープ グローバル 動的 いいえ サーバーがローカル接続 (TCP/IP 以外) のみ許可する場合、これは
ON
です。Unix の場合、ローカル接続には Unix ソケットファイルが使用されます。Windows の場合、ローカル接続には名前付きパイプまたは共有メモリーが使用されます。この変数は、--skip-networking
オプションを使用してON
に設定できます。 -
コマンド行形式 --skip-show-database
システム変数 skip_show_database
スコープ グローバル 動的 いいえ これは、
SHOW DATABASES
権限を持っていないユーザーがSHOW DATABASES
ステートメントを使用することを防ぎます。ほかのユーザーに属するデータベースをユーザーが表示できることに不安がある場合に、セキュリティーを高めることができます。この効果はSHOW DATABASES
権限によって異なります。変数の値がON
の場合、SHOW DATABASES
ステートメントはSHOW DATABASES
権限を持つユーザーにのみ許可され、ステートメントはすべてのデータベース名を表示します。値がOFF
の場合、SHOW DATABASES
はすべてのユーザーに許可されますが、ユーザーがSHOW DATABASES
またはほかの権限を持つデータベースの名前のみが表示されます。(すべてのグローバル権限がデータベースのための権限とみなされることに注意してください。) -
コマンド行形式 --slow-launch-time=#
システム変数 slow_launch_time
スコープ グローバル 動的 はい 型 数値 デフォルト 2
スレッドを作成する時間がこの秒数より長くかかると、サーバーは
Slow_launch_threads
ステータス変数を増やします。 -
コマンド行形式 --slow-query-log
システム変数 slow_query_log
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
スロークエリーログを有効にするかどうか。値が 0 (または
OFF
) の場合はログを無効にし、1 (またはON
) の場合はログを有効にします。デフォルト値は、--slow_query_log
オプションが指定されているかどうかによって異なります。ログ出力先はlog_output
システム変数によって制御され、この値をNONE
にした場合はログが有効になっていてもログエントリは書き込まれません。「スロー」の程度は、
long_query_time
変数の値によって決定されます。セクション5.2.5「スロークエリーログ」を参照してください。 -
コマンド行形式 --slow-query-log-file=file_name
システム変数 slow_query_log_file
スコープ グローバル 動的 はい 型 ファイル名 デフォルト host_name-slow.log
スロークエリーログファイルの名前。デフォルト値は
ですが、初期値はhost_name
-slow.log--slow_query_log_file
オプションを使用すると変更できます。 -
コマンド行形式 --socket=file_name
システム変数 socket
スコープ グローバル 動的 いいえ 型 ファイル名 デフォルト /tmp/mysql.sock
Unix プラットフォームでは、この変数は、ローカルクライアント接続に使用されるソケットファイルの名前です。デフォルトは
/tmp/mysql.sock
です。(一部の配布形式ではディレクトリが異なる場合があり、たとえば RPM の場合は/var/lib/mysql
です。)Windows では、この変数は、ローカルクライアント接続に使用される名前付きパイプの名前です。デフォルト値は
MySQL
です (大文字小文字の区別はありません)。 -
コマンド行形式 --sort-buffer-size=#
システム変数 sort_buffer_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト (その他, 64 ビットプラットフォーム, ≥ 5.6.4) 262144
デフォルト (その他, 64 ビットプラットフォーム, ≤ 5.6.3) 2097144
デフォルト (その他, 32 ビットプラットフォーム, ≥ 5.6.4) 262144
デフォルト (その他, 32 ビットプラットフォーム, ≤ 5.6.3) 2097144
デフォルト (Windows, ≥ 5.6.4) 262144
デフォルト (Windows, ≤ 5.6.3) 2097144
最小値 32768
最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615
最大値 (その他, 32 ビットプラットフォーム) 4294967295
最大値 (Windows) 4294967295
ソートを実行する必要がある各セッションは、このサイズのバッファーを割り当てます。
sort_buffer_size
はいずれかのストレージエンジンに固有ではなく、一般的な方法で最適化に適用されます。例については、セクション8.2.1.15「ORDER BY の最適化」を参照してください。SHOW GLOBAL STATUS
の出力に表示される秒あたりのSort_merge_passes
の数が多い場合、sort_buffer_size
値を増やすことで、クエリー最適化またはインデックスの改善によって改善できないORDER BY
またはGROUP BY
操作を高速化することを検討できます。MySQL 5.6.4 以降では、オプティマイザは必要なスペースを算出しようとしますが、さらに多く上限まで割り当てることができます。MySQL 5.6.4 より前では、オプティマイザはバッファーのすべてが必要ない場合でも、バッファー全体を割り当てます。いずれの場合も、これを必要以上に大きくグローバルに設定すると、ソートを実行するほとんどのクエリーが低速化します。これはセッション設定として増やし、かつ大きいサイズを必要とするセッションに制限することを推奨します。Linux の場合、256K バイトおよび 2M バイトのしきい値があり、それより大きい値にするとメモリー割り当てが著しく低速になるため、これらのいずれかの値より低くすることを検討してください。実験して、ワークロードに最適な値を見つけてください。セクションB.5.4.4「MySQL が一時ファイルを格納する場所」を参照してください。
許可される
sort_buffer_size
の最大の設定値は 4G バイト − 1 です。64 ビットプラットフォームの場合は大きい値が許可されます (64 ビットの Windows の場合は例外で、大きい値は 4G バイト − 1 に切り捨てられて警告が出ます)。 -
システム変数 sql_auto_is_null
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト 0
この変数が 1 に設定されている場合は、自動的に生成された
AUTO_INCREMENT
値を正常に挿入するステートメントの後に、次の形式のステートメントを発行すれば、その値を検索できます。SELECT * FROM tbl_name WHERE auto_col IS NULL
ステートメントが行を返す場合、返される値は
LAST_INSERT_ID()
関数を呼び出した場合と同じです。複数行の挿入後の戻り値などについての詳細は、セクション12.14「情報関数」を参照してください。AUTO_INCREMENT
値を正常に挿入できなかった場合、SELECT
ステートメントは行を返しません。IS NULL
比較を使用してAUTO_INCREMENT
値を取得する動作は、Access などの一部の ODBC プログラムによって使用されます。Obtaining Auto-Increment Valuesを参照してください。この動作はsql_auto_is_null
を 0 に設定することによって無効化できます。MySQL 5.6 では
sql_auto_is_null
のデフォルト値は 0 です。 -
システム変数 sql_big_selects
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト 1
0 に設定すると、MySQL は、実行に非常に時間がかかる
SELECT
ステートメント (つまり、調査される行数がmax_join_size
の値を超えるとオプティマイザが推定したステートメント) を中止します。これは、推奨されないWHERE
ステートメントが発行されたときに便利です。新規接続についてのデフォルト値は 1 で、これはすべてのSELECT
ステートメントを許可します。max_join_size
システム変数をDEFAULT
以外の値に設定すると、sql_big_selects
は 0 に設定されます。 -
システム変数 sql_buffer_result
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト 0
1 に設定すると、
sql_buffer_result
はSELECT
ステートメントからの結果を一時テーブルに配置するよう強制します。これは、MySQL でテーブルロックを早期に解放するのに役立ち、クライアントに結果を送信するのに長い時間がかかる場合に適していることがあります。デフォルト値は 0 です。 -
システム変数 sql_log_bin
スコープ グローバル、セッション 動的 はい 型 ブール この変数は、バイナリログへのロギングを実行するかどうかを制御します。デフォルト値は 1 (ロギングを実行する) です。現在のセッションのロギングを変更するには、この変数のセッション値を変更します。この変数を設定するには、セッションユーザーが
SUPER
権限を持つ必要があります。MySQL 5.6 では、トランザクションまたはサブクエリー内に
@@SESSION.sql_log_bin
を設定できません。(バグ #53437) -
システム変数 sql_log_off
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト 0
この変数は、一般クエリーログへのロギングが実行されるかどうかを制御します。デフォルト値は 0 (ロギングを実行する) です。現在のセッションのロギングを変更するには、この変数のセッション値を変更します。このオプションを設定するには、セッションユーザーが
SUPER
権限を持つ必要があります。デフォルト値は 0 です。 -
コマンド行形式 --sql-mode=name
システム変数 sql_mode
スコープ グローバル、セッション 動的 はい 型 セット デフォルト (≥ 5.6.6) NO_ENGINE_SUBSTITUTION
デフォルト (≤ 5.6.5) ''
有効な値 ALLOW_INVALID_DATES
ANSI_QUOTES
ERROR_FOR_DIVISION_BY_ZERO
HIGH_NOT_PRECEDENCE
IGNORE_SPACE
NO_AUTO_CREATE_USER
NO_AUTO_VALUE_ON_ZERO
NO_BACKSLASH_ESCAPES
NO_DIR_IN_CREATE
NO_ENGINE_SUBSTITUTION
NO_FIELD_OPTIONS
NO_KEY_OPTIONS
NO_TABLE_OPTIONS
NO_UNSIGNED_SUBTRACTION
NO_ZERO_DATE
NO_ZERO_IN_DATE
ONLY_FULL_GROUP_BY
PAD_CHAR_TO_FULL_LENGTH
PIPES_AS_CONCAT
REAL_AS_FLOAT
STRICT_ALL_TABLES
STRICT_TRANS_TABLES
現在のサーバー SQL モードで、動的に設定できます。MySQL 5.6.6 以降のデフォルトは
NO_ENGINE_SUBSTITUTION
で、以前は空の文字列でした。セクション5.1.7「サーバー SQL モード」を参照してください。注記MySQL インストールプログラムはインストールプロセス中に SQL モードを構成することがあります。たとえば、mysql_install_db は、
my.cnf
という名前のデフォルトオプションファイルを基本インストールディレクトリに作成します。このファイルには、SQL モードを設定する行が含まれています。セクション4.4.3「mysql_install_db — MySQL データディレクトリの初期化」を参照してください。SQL モードがデフォルトまたは期待されているモードと異なる場合、サーバーが起動時に読み取るオプションファイル内の設定を確認してください。
-
1 (デフォルト) に設定した場合、
Note
レベルの警告によってwarning_count
が増加し、サーバーがこれらを記録します。0 に設定した場合、Note
の警告によってwarning_count
は増加せず、サーバーはこれらを記録しません。mysqldump には、この変数を 0 に設定するための出力が含まれているため、ダンプファイルをリロードしても、リロード操作の整合性に影響しないイベントについて、警告が生成されません。 -
1 (デフォルト) に設定すると、サーバーは
SHOW CREATE TABLE
とSHOW CREATE DATABASE
ステートメントに識別子を引用します。0 に設定した場合、引用は無効化されます。このオプションはデフォルトで有効化されているため、引用が必要な識別子に対してレプリケーションが機能します。セクション13.7.5.12「SHOW CREATE TABLE 構文」およびセクション13.7.5.8「SHOW CREATE DATABASE 構文」を参照してください。 -
1 に設定すると、MySQL は
WHERE
句またはLIMIT
句の内部でキーを使用しないUPDATE
またはDELETE
ステートメントを中止します。(特に、UPDATE
ステートメントは、キーを使用するWHERE
句またはLIMIT
句、あるいはその両方を持つ必要があります。DELETE
ステートメントは両方を持つ必要があります。)これにより、キーが正しく利用されないため多数の行を変更または削除する可能性があるUPDATE
またはDELETE
ステートメントのキャッチが可能になります。デフォルト値は 0 です。 -
システム変数 sql_select_limit
スコープ グローバル、セッション 動的 はい 型 数値 SELECT
ステートメントから返される最大行数。新規接続についてのデフォルト値は、サーバーがテーブルあたりで許可する最大行数です。標準的なデフォルト値は (232)−1 または (264)−1 です。制限を変更した場合、デフォルト値はDEFAULT
の値を割り当てることでリストアできます。SELECT
にLIMIT
句がある場合、LIMIT
がsql_select_limit
の値に優先されます。 -
この変数は、警告が発生する場合に、単一行の
INSERT
ステートメントが情報文字列を生成するかどうかを制御します。デフォルトは 0 です。この値を 1 に設定すると、情報文字列が生成されます。 -
コマンド行形式 --ssl-ca=file_name
システム変数 ssl_ca
スコープ グローバル 動的 いいえ 型 ファイル名 信頼された SSL CA のリストを含むファイルへのパス。
-
コマンド行形式 --ssl-capath=dir_name
システム変数 ssl_capath
スコープ グローバル 動的 いいえ 型 ディレクトリ名 PEM 形式の信頼された SSL CA 証明書を格納するディレクトリのパス。
-
コマンド行形式 --ssl-cert=file_name
システム変数 ssl_cert
スコープ グローバル 動的 いいえ 型 ファイル名 セキュアな接続を確立するために使用する SSL 証明書ファイルの名前。
-
コマンド行形式 --ssl-cipher=name
システム変数 ssl_cipher
スコープ グローバル 動的 いいえ 型 文字列 SSL 暗号化に使用する許可されている暗号のリスト。
-
コマンド行形式 --ssl-crl=file_name
導入 5.6.3 システム変数 ssl_crl
スコープ グローバル 動的 いいえ 型 ファイル名 PEM 形式での証明書失効リストを含むファイルへのパス。失効リストは、OpenSSL に対してコンパイルされた MySQL 配布で機能します (yaSSL では機能しません)。
この変数は MySQL 5.6.3 で追加されました。
-
コマンド行形式 --ssl-crlpath=dir_name
導入 5.6.3 システム変数 ssl_crlpath
スコープ グローバル 動的 いいえ 型 ディレクトリ名 PEM 形式での証明書失効リストを含むファイルを格納するディレクトリへのパス。失効リストは、OpenSSL に対してコンパイルされた MySQL 配布で機能します (yaSSL では機能しません)。
この変数は MySQL 5.6.3 で追加されました。
-
コマンド行形式 --ssl-key=file_name
システム変数 ssl_key
スコープ グローバル 動的 いいえ 型 ファイル名 セキュアな接続を確立するために使用する SSL 鍵ファイルの名前。
-
システム変数 storage_engine
スコープ グローバル、セッション 動的 はい 型 列挙 デフォルト InnoDB
デフォルトストレージエンジン (テーブル型)。サーバー起動時にストレージエンジンを設定するには、
--default-storage-engine
オプションを使用します。セクション5.1.3「サーバーコマンドオプション」を参照してください。この変数は非推奨です。代わりに
default_storage_engine
を使用してください。 -
コマンド行形式 --stored-program-cache=#
導入 5.6.5 システム変数 stored_program_cache
スコープ グローバル 動的 はい 型 数値 デフォルト 256
最小値 256
最大値 524288
接続あたりでキャッシュされるストアドルーチンの数について、上側のソフトリミットを設定します。この変数の値は、ストアドプロシージャーおよびストアドファンクションで、MySQL Server によって維持される 2 つのキャッシュそれぞれに保持されるストアドルーチンの数に関して指定します。
ストアドルーチンが実行されると、ルーチン内の先頭または最上位レベルのステートメントが解析される前に、このキャッシュサイズが検査されます。同じタイプのルーチン (どちらが実行されているかによってストアドプロシージャーまたはストアドファンクション) の数が、この変数によって指定される制限を超える場合、対応するキャッシュがフラッシュされ、キャッシュされたオブジェクトに対して以前割り当てられていたメモリーが解放されます。これにより、ストアドルーチン間に依存関係がある場合でも、キャッシュを安全にフラッシュできます。
-
コマンド行形式 --sync-frm
システム変数 sync_frm
スコープ グローバル 動的 はい 型 ブール デフォルト TRUE
この変数が 1 に設定された場合、一時テーブル以外のテーブルが作成されると、その
.frm
ファイルは (fdatasync()
を使用して) ディスクに同期されます。これは遅いですが、クラッシュした場合はより安全です。デフォルトは 1 です。 -
システム変数 system_time_zone
スコープ グローバル 動的 いいえ 型 文字列 サーバーシステムタイムゾーン。サーバーは実行を開始するとき、マシンのデフォルトからタイムゾーン設定を継承し、サーバーを実行するために使用されるアカウントの環境または起動スクリプトによって変更されることがあります。値は
system_time_zone
を設定するために使用されます。通常、タイムゾーンはTZ
環境変数で指定されます。または mysqld_safe スクリプトの--timezone
オプションを使用しても指定できます。system_time_zone
変数はtime_zone
と異なります。これらは同じ値になることもありますが、後者の変数は、接続する各クライアントのタイムゾーンを初期化するために使用されます。セクション10.6「MySQL Server でのタイムゾーンのサポート」を参照してください。 -
システム変数 table_definition_cache
スコープ グローバル 動的 はい 型 数値 デフォルト (≥ 5.6.8) -1 (autosized)
デフォルト (≤ 5.6.7) 400
最小値 400
最大値 524288
定義キャッシュに格納可能な (
.frm
ファイルからの) テーブル定義の数。多数のテーブルを使用する場合、大きいテーブル定義キャッシュを作成して、テーブルを開くことを高速化できます。標準のテーブルキャッシュと異なり、テーブル定義キャッシュは占有スペースが少なくファイルディスクリプタを使用しません。最小値は 400 です。デフォルト値は次の式に基づき、2000 までに制限されています。400 + (table_open_cache / 2)
MySQL 5.6.8 より前では、デフォルトは 400 です。
InnoDB
の場合、table_definition_cache
は、InnoDB
データディクショナリキャッシュ内の開いているテーブルインスタンスの数のソフト制限として機能します。開いているテーブルインスタンスの数がtable_definition_cache
設定を超えた場合、LRU メカニズムはエビクション用のテーブルインスタンスにマークを付け、最終的にデータディクショナリキャッシュから削除されます。この制限は、次回サーバー開始までに使用頻度が低いテーブルインスタンスをキャッシュするために大量のメモリーが使用されるような状況に対処するのに役立ちます。キャッシュされたメタデータを持つテーブルインスタンスの数が、table_definition_cache
によって定義された制限よりも多い場合があります。これは、InnoDB
システムテーブルインスタンスと、外部キー関係を持つ親および子のテーブルインスタンスが LRU リストに配置されず、メモリーからエビクションされないためです。さらに、
table_definition_cache
は、一度に開くことができる、InnoDB
file-per-table テーブルスペースの数のソフト制限を定義し、これはinnodb_open_files
によっても制御されます。table_definition_cache
およびinnodb_open_files
の両方が設定される場合、高い方の設定値が使用されます。どちらの変数も設定されない場合、デフォルト値が高いtable_definition_cache
が使用されます。オープンテーブルスペースファイルハンドルの数が、table_definition_cache
またはinnodb_open_files
によって定義された制限を超える場合、LRU メカニズムは、テーブルスペースファイル LRU リストを検索して、完全にフラッシュされて現在延長されていないファイルを探します。この処理は、新しいテーブルスペースが開くたびに実行されます。「非アクティブな」テーブルスペースがない場合、テーブルスペースファイルはクローズされません。 -
システム変数 table_open_cache
スコープ グローバル 動的 はい 型 数値 デフォルト (≥ 5.6.8) 2000
デフォルト (≤ 5.6.7) 400
最小値 1
最大値 524288
すべてのスレッドについて開いているテーブルの数。この値を大きくすると、mysqld が要求するファイルディスクリプタの数が増加します。
Opened_tables
ステータス変数を検査して、テーブルキャッシュを増やす必要があるかどうかを確認できます。セクション5.1.6「サーバーステータス変数」を参照してください。Opened_tables
の値が大きく、FLUSH TABLES
をあまり使用しない場合 (すべてのテーブルのクローズおよび再オープンの強制のみを実行する)、table_open_cache
変数の値を増やします。テーブルキャッシュに関する詳細は、セクション8.4.3.1「MySQL でのテーブルのオープンとクローズの方法」を参照してください。 -
導入 5.6.6 システム変数 table_open_cache_instances
スコープ グローバル 動的 いいえ 型 数値 デフォルト 1
開いているテーブルキャッシュインスタンスの数 (デフォルトは 1)。セッション間の競合を減少させることでスケーラビリティーを改善するために、開いているテーブルキャッシュを、サイズが
table_open_cache
/table_open_cache_instances
のいくつかの小さいキャッシュインスタンスにパーティション化できます。DML ステートメントでは、セッションはインスタンスにアクセスするために、1 つのインスタンスのみロックする必要があります。このセグメントキャッシュは複数インスタンスにわたってアクセスし、多くのセッションがテーブルにアクセスする場合にキャッシュを使用する演算の高いパフォーマンスが可能になります。(DDL ステートメントでは引き続きキャッシュ全体のロックが必要ですが、そのようなステートメントは DML ステートメントよりも頻度がずっと低くなります。)通常 16 以上のコアを使用するシステムでは、8 または 16 の値が推奨されます。
この変数は MySQL 5.6.6 で追加されました。
-
コマンド行形式 --thread-cache-size=#
システム変数 thread_cache_size
スコープ グローバル 動的 はい 型 数値 デフォルト (≥ 5.6.8) -1 (autosized)
デフォルト (≤ 5.6.7) 0
最小値 0
最大値 16384
サーバーが再使用のためにキャッシュするスレッドの数。クライアントが接続を切断したとき、スレッド数が
thread_cache_size
より少なければ、クライアントのスレッドはキャッシュに配置されます。スレッドのリクエストは、可能であれば、キャッシュからのスレッドを再使用することによって満たされ、キャッシュが空の場合のみ新しいスレッドが作成されます。多くの新しい接続がある場合、この変数を増やしてパフォーマンスを向上できます。スレッドの実装が適切な場合、通常はパフォーマンスが著しく改善されることはありません。ただし、1 秒あたり数百件の接続がサーバーで見られる場合、通常はthread_cache_size
を十分に高く設定すると、ほとんどの新しい接続でキャッシュされたスレッドを使用できます。ステータス変数Connections
とThreads_created
の差異を調査することで、スレッドキャッシュの効率性を確認できます。詳細については、セクション5.1.6「サーバーステータス変数」を参照してください。デフォルト値は次の式に基づいており、上限は 100 に制限されています。
8 + (max_connections / 100)
MySQL 5.6.8 より前では、デフォルトは 0 です。
-
コマンド行形式 --thread-concurrency=#
非推奨 5.6.1 システム変数 thread_concurrency
スコープ グローバル 動的 いいえ 型 数値 デフォルト 10
最小値 1
最大値 512
この変数は Solaris 8 以前のシステムに固有のもので、mysqld はこのシステムに対し、変数値を指定して
thr_setconcurrency()
関数を呼び出します。この関数によって、アプリケーションは、同時に実行するのが望ましいスレッド数についてのヒントをスレッドシステムに指示できます。現在の Solaris バージョンのドキュメントには、これは効果がないと記載されています。この変数は MySQL 5.6.1 以降で非推奨となり、MySQL 5.7 で削除されています。これを見つけたときは、Solaris 8 以前のためのものでないかぎり、MySQL 構成ファイルから削除してください。
-
コマンド行形式 --thread-handling=name
システム変数 thread_handling
スコープ グローバル 動的 いいえ 型 列挙 デフォルト one-thread-per-connection
有効な値 no-threads
one-thread-per-connection
dynamically-loaded
接続スレッドのサーバーによって使用されるスレッド処理モデル。許可される値は
no-threads
(サーバーは 1 つの接続を処理するために単一スレッドを使用する) およびone-thread-per-connection
(サーバーはそれぞれのクライアント接続を処理するために 1 つのスレッドを使用する) です。Linux でのデバッグにはno-threads
が便利です。セクション24.4「MySQL のデバッグおよび移植」を参照してください。スレッドプールプラグインが有効な場合、サーバーは
thread_handling
値をdynamically-loaded
に設定します。セクション8.11.6.1「スレッドプールコンポーネントとインストール」を参照してください。 -
コマンド行形式 --thread-pool-algorithm=#
導入 5.6.10 システム変数 thread_pool_algorithm
スコープ グローバル 動的 いいえ 型 数値 デフォルト 0
最小値 0
最大値 1
この変数は、スレッドプールプラグインが使用するアルゴリズムを制御します。
値 0 (デフォルト) では、並列性の低い保守的なアルゴリズムが使用されます。これはもっとも良く検査されていて、非常に良好な結果を生成することが知られています。
-
値 1 では並列性が高まり、より積極的なアルゴリズムが使用されます。このアルゴリズムは、最適なスレッドカウントでパフォーマンスが 5 – 10% 高まりますが、接続数が増えるにつれてパフォーマンスが低下することが知られています。この使用は実験的であり、サポートされないものとみなすようにしてください。
この変数は MySQL 5.6.10 で追加されました。これはスレッドプールプラグインが有効な場合のみ使用できます。セクション8.11.6「スレッドプールプラグイン」を参照してください
-
thread_pool_high_priority_connection
コマンド行形式 --thread-pool-high-priority-connection=#
導入 5.6.10 システム変数 thread_pool_high_priority_connection
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 1
この変数は、実行前の新規ステートメントのキューイングに影響します。値が 0 (false、デフォルト) の場合、ステートメントのキューイングでは優先度の低いキューと優先度の高いキューの両方が使用されます。値が 1 (true) の場合、キューに入れられるステートメントは常に優先度の高いキューに入ります。
この変数は MySQL 5.6.10 で追加されました。これはスレッドプールプラグインが有効な場合のみ使用できます。セクション8.11.6「スレッドプールプラグイン」を参照してください
-
thread_pool_max_unused_threads
コマンド行形式 --thread-pool-max-unused-threads=#
導入 5.6.10 システム変数 thread_pool_max_unused_threads
スコープ グローバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 4096
スレッドプール内で許可される最大の未使用スレッド数。この変数により、スリープ状態のスレッドによって使用されるメモリーの量を制限できます。
値 0 (デフォルト) は、スリープ状態のスレッドの数を制限しないことを意味します。値
N
は、N
が 0 より大きい場合、1 つのコンシューマスレッドと、N
−1 個の予約スレッドを意味します。この状況で、スレッドがスリープ状態に入ろうとしたが、スリープ状態のスレッド数がすでに最大値に到達している場合、スレッドはスリープ状態に入らずに存在します。スリープ状態のスレッドは、コンシューマスレッドまたは予約スレッドのいずれかとしてスリープ状態になります。スレッドプールでは、1 つのスレッドがスリープ状態のコンシューマスレッドであることを許可します。あるスレッドがスリープ状態になり、コンシューマスレッドが存在しない場合、そのスレッドはコンシューマスレッドとしてスリープ状態になります。スレッドをウェイクアップさせる必要があるとき、コンシューマスレッドが存在すれば、そのコンシューマスレッドが選択されます。ウェイクアップするコンシューマスレッドがない場合にのみ予約スレッドが選択されます。
この変数は MySQL 5.6.10 で追加されました。これはスレッドプールプラグインが有効な場合のみ使用できます。セクション8.11.6「スレッドプールプラグイン」を参照してください
-
コマンド行形式 --thread-pool-prio-kickup-timer=#
導入 5.6.10 システム変数 thread_pool_prio_kickup_timer
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 1000
最小値 0
最大値 4294967294
この変数は、優先度が低いキューで実行を待機するステートメントに影響します。この値は、待機中のステートメントが優先度の高いキューに移されるまでのミリ秒数です。デフォルトは 1000 (1 秒) です。値の範囲は 0 から 232 − 2 です。
この変数は MySQL 5.6.10 で追加されました。これはスレッドプールプラグインが有効な場合のみ使用できます。セクション8.11.6「スレッドプールプラグイン」を参照してください
-
コマンド行形式 --thread-pool-size=#
導入 5.6.10 システム変数 thread_pool_size
スコープ グローバル 動的 いいえ 型 数値 デフォルト 16
最小値 1
最大値 64
スレッドプール内のスレッドグループの数。これはスレッドプールのパフォーマンスを制御するもっとも重要なパラメータです。同時に実行できるステートメントの数に影響します。デフォルト値は 16 で、許可される値の範囲は 1 から 64 です。この範囲の外側の値が指定された場合、スレッドプールプラグインはロードされず、サーバーはエラーログにメッセージを書き込みます。
この変数は MySQL 5.6.10 で追加されました。これはスレッドプールプラグインが有効な場合のみ使用できます。セクション8.11.6「スレッドプールプラグイン」を参照してください
-
コマンド行形式 --thread-pool-stall-limit=#
導入 5.6.10 システム変数 thread_pool_stall_limit
スコープ グローバル 動的 はい 型 数値 デフォルト 6
最小値 4
最大値 600
この変数はステートメントの実行に影響します。この値は、ステートメントが実行を開始したあと、ステートメントが停滞していると定義される前に終了する時間量で、その時点で、スレッドプールはスレッドグループは別のステートメントの実行の開始を許可します。この値は 10 ミリ秒単位で測定されるため、値 6 (デフォルト) は 60 ミリ秒を意味します。値の範囲は 4 から 600 (40 ミリ秒から 6 秒) です。待機の値が短いと、スレッドはよりすみやかに開始できます。短い値はデッドロック状況を回避により適しています。長い待機の値は、長時間実行するステートメントを含むワークロードで有用で、現在のステートメントの実行時に多数の新しいステートメントが開始しないようにします。
この変数は MySQL 5.6.10 で追加されました。これはスレッドプールプラグインが有効な場合のみ使用できます。セクション8.11.6「スレッドプールプラグイン」を参照してください
-
コマンド行形式 --thread-stack=#
システム変数 thread_stack
スコープ グローバル 動的 いいえ 型 数値 デフォルト (64 ビットプラットフォーム) 262144
デフォルト (32 ビットプラットフォーム) 196608
最小値 131072
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
各スレッドのスタックサイズ。
crash-me
テストによって検出される制限の多くは、この値に依存します。セクション8.12.2「MySQL ベンチマークスイート」を参照してください。デフォルトの 192K バイト (64 ビットシステムの場合は 256K バイト) は、通常の操作では十分な大きさです。スレッドスタックサイズが小さすぎると、サーバーで処理できる SQL ステートメントの複雑さ、ストアドプロシージャーの再帰の深さなど、メモリーを大量に消費する処理が制限されます。 -
この変数は使用されません。これは MySQL 5.6.7 以降で非推奨となり、今後の MySQL リリースで削除されます。
-
システム変数 time_zone
スコープ グローバル、セッション 動的 はい 型 文字列 現在のタイムゾーン。この変数は、接続する各クライアントのタイムゾーンを初期化するために使用されます。デフォルトでは、この初期値は
'SYSTEM'
です (「system_time_zone
の値を使用する」ことを意味します)。この値はサーバー起動時に--default-time-zone
オプションで明示的に指定できます。セクション10.6「MySQL Server でのタイムゾーンのサポート」を参照してください。 -
コマンド行形式 --timed-mutexes
非推奨 5.6.20 システム変数 timed_mutexes
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
MySQL 5.6 で、この変数は非推奨になり、必要ありません。これは今後の MySQL リリースで削除されます。
-
システム変数 timestamp
スコープ セッション 動的 はい 型 数値 このクライアントの時間を設定します。これはバイナリログを使用して行をリストアする場合に元のタイムスタンプを取得するために使用されます。
timestamp_value
は Unix エポックタイムスタンプ (UNIX_TIMESTAMP()
で返されるような値で、'YYYY-MM-DD hh:mm:ss'
形式の値ではありません) またはDEFAULT
になります。timestamp
を定数値に設定すると、ふたたび変更されるまでその値が保持されます。timestamp
をDEFAULT
に設定すると、その値はアクセスを受けた時点での現在の日付および時間になります。MySQL 5.6.4 以降では、
timestamp
はBIGINT
でなくDOUBLE
で、これはこの値がマイクロ秒部分を含むためです。SET timestamp
はNOW()
によって戻された値に影響を及ぼしますが、SYSDATE()
によって戻された値には影響しません。つまり、バイナリログのタイムスタンプ設定は、SYSDATE()
の呼び出しに影響しないことを意味します。サーバーを--sysdate-is-now
オプションで開始して、SYSDATE()
をNOW()
のエイリアスにでき、この場合SET timestamp
が両方の関数に影響します。 -
コマンド行形式 --tmp-table-size=#
システム変数 tmp_table_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 16777216
最小値 1024
最大値 18446744073709551615
内部インメモリーの一時テーブルの最大サイズ。(実際の制限値は
tmp_table_size
とmax_heap_table_size
の最小値として決定されます。)インメモリーの一時テーブルが制限値を超えると、MySQL はこれを自動的にディスク上のMyISAM
テーブルにします。多数の高度なGROUP BY
クエリーを実行する場合にメモリーが多くあるときは、tmp_table_size
(さらに必要に応じてmax_heap_table_size
) の値を増やします。この変数はユーザーが作成したMEMORY
テーブルには適用されません。Created_tmp_disk_tables
変数とCreated_tmp_tables
変数の値を比較することによって、作成された内部のディスク上の一時テーブル数と、作成された内部の一時テーブルの総数を比較できます。セクション8.4.4「MySQL が内部一時テーブルを使用する仕組み」も参照してください。
-
コマンド行形式 --tmpdir=path
システム変数 tmpdir
スコープ グローバル 動的 いいえ 型 ディレクトリ名 一時ファイルおよび一時テーブル用に使用されるディレクトリ。この変数は、ラウンドロビン方式で使用されるいくつかのパスのリストとして設定できます。パスは UNIX ではコロン文字 (「
:
」)、Windows ではセミコロン文字 (「;
」) で区切るようにしてください。複数ディレクトリ機能を使用すると、いくつかの物理ディスクに負荷を分散できます。MySQL Server がレプリケーションスレーブとして動作する場合、
tmpdir
を、メモリーベースのファイルシステム上のディレクトリや、サーバーホストが再起動したときにクリアされるディレクトリに指定するように設定しないでください。レプリケーションスレーブは、一部の一時ファイルがマシンの再起動後も存続し、一時テーブルまたはLOAD DATA INFILE
操作を複製できるようにする必要があります。サーバーが再起動したときに一時ファイルディレクトリ内のファイルが消失した場合、レプリケーションは失敗します。slave_load_tmpdir
変数を使用すると、スレーブの一時ディレクトリを設定できます。その場合、スレーブは一般的なtmpdir
値を使用せず、tmpdir
を非永続的な場所に設定できます。 -
コマンド行形式 --transaction-alloc-block-size=#
システム変数 transaction_alloc_block_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 8192
最小値 1024
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
メモリーを必要とするトランザクションごとのメモリープールを増やす、バイト単位の増加量。
transaction_prealloc_size
の説明を参照してください。 -
コマンド行形式 --transaction-prealloc-size=#
システム変数 transaction_prealloc_size
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 4096
最小値 1024
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
トランザクションに関するさまざまな割り当てでメモリーの取得元となる、トランザクションごとのメモリープールが存在します。プールのバイト単位の初期サイズは
transaction_prealloc_size
です。利用できるメモリーが不足しているためプールから十分に行えない各割り当てについて、プールはtransaction_alloc_block_size
バイトだけ増加されます。トランザクションが終了すると、プールはtransaction_prealloc_size
バイトに切り捨てられます。単一トランザクション内のすべてのステートメントを含めるように
transaction_prealloc_size
を十分に大きくすると、多数のmalloc()
コールを避けることができます。 -
システム変数 tx_isolation
スコープ グローバル、セッション 動的 はい 型 列挙 デフォルト REPEATABLE-READ
有効な値 READ-UNCOMMITTED
READ-COMMITTED
REPEATABLE-READ
SERIALIZABLE
デフォルトのトランザクション分離レベル。デフォルト値は
REPEATABLE-READ
。この変数は直接設定することも、
SET TRANSACTION
ステートメントなどを使用して間接的に設定することもできます。セクション13.3.6「SET TRANSACTION 構文」を参照してください。スペースを含む分離レベル名にtx_isolation
を直接設定する場合、名前を引用符記号で囲み、スペースをダッシュで置き換えるようにします。例:SET tx_isolation = 'READ-COMMITTED';
この変数の値を設定するために、一意となる任意の有効な値のプリフィクスを使用できます。
デフォルトのトランザクション分離レベルは
--transaction-isolation
サーバーオプションを使用すると、起動時にも設定できます。 -
導入 5.6.5 システム変数 tx_read_only
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト OFF
デフォルトのトランザクションアクセスモード。値は
OFF
(読み取り/書き込み、デフォルト) またはON
(読み取り専用) を指定できます。この変数は直接設定することも、
SET TRANSACTION
ステートメントなどを使用して間接的に設定することもできます。セクション13.3.6「SET TRANSACTION 構文」を参照してください。デフォルトのトランザクションアクセスモードを起動時に設定するには、
--transaction-read-only
サーバーオプションを使用します。この変数は MySQL 5.6.5 で追加されました。
-
システム変数 unique_checks
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト 1
1 に設定した場合 (デフォルト)、
InnoDB
テーブルのセカンダリインデックスの一意性チェックが行われます。0 に設定した場合、ストレージエンジンでは、重複したキーが入力データに存在しないことが想定されます。一意性違反がデータにないことが確実にわかっている場合、これを 0 に設定してInnoDB
への大きいテーブルのインポートを高速化できます。この変数を 0 に設定しても、ストレージエンジンが重複キーを無視する必要があるわけではありません。エンジンは引き続き、重複キーの存在を検査し、検出された場合に重複キーエラーが生成されます。
-
コマンド行形式 --updatable-views-with-limit=#
システム変数 updatable_views_with_limit
スコープ グローバル、セッション 動的 はい 型 ブール デフォルト 1
この変数は、基礎テーブルで定義した主キーのすべてのカラムがビューに含まれていない場合に、更新ステートメントに
LIMIT
句が含まれているとき、そのビューの更新を行えるかどうかを制御します。(このような更新は GUI ツールによって頻繁に生成されます。)更新はUPDATE
またはDELETE
ステートメントのことです。ここでの主キーとはPRIMARY KEY
か、カラムにNULL
を含むことができないUNIQUE
インデックスです。変数は 2 つの値に設定できます。
1
またはYES
: 警告のみ発行します (エラーメッセージではない)。これはデフォルト値です。0
またはNO
: 更新を禁止します。
-
validate_password_
xxx
validate_password
プラグインは、validate_password_
形式の名前を持つシステム変数のセットを実装します。これらの変数は、そのプラグインによるパスワードテストの影響を受けます。セクション6.1.2.6.2「パスワード検証プラグインのオプションおよび変数」を参照してください。xxx
-
導入 5.6.11 システム変数 validate_user_plugins
スコープ グローバル 動的 いいえ 型 ブール デフォルト ON
この変数が有効な場合 (デフォルト)、サーバーは各ユーザーアカウントを検査し、アカウントが使用できなくなる条件が検出された場合に警告を生成します。
アカウントが、ロードされていない認証プラグインを必要としている。
アカウントは
sha256_password
認証プラグインを必要としているが、このプラグインによって必要とされる SSL および RSA をいずれも有効化しないでサーバーが開始された。
validate_user_plugins
を有効にすると、サーバー初期化およびFLUSH PRIVILEGES
の速度が低下します。追加の検査が必要ない場合、この変数を起動時に無効化するとパフォーマンス低下を防ぐことができます。この変数は MySQL 5.6.11 で追加されました。
-
サーバーのバージョン番号。値には、サーバーの構築情報または構成情報を示すサフィクスを含めることも可能です。
-log
は、 1 つ以上の一般ログ、スロークエリーログ、またはバイナリログを有効化できることを示します。-debug
は、デバッグサポートを有効にしてサーバーが構築されたことを示します。 -
システム変数 version_comment
スコープ グローバル 動的 いいえ 型 文字列 CMake 構成プログラムには、MySQL の構築時にコメントの指定を可能にする
COMPILATION_COMMENT
オプションがあります。この変数は、そのコメントの値を格納します。セクション2.9.4「MySQL ソース構成オプション」を参照してください。 -
システム変数 version_compile_machine
スコープ グローバル 動的 いいえ 型 文字列 サーバーバイナリのタイプ。
-
システム変数 version_compile_os
スコープ グローバル 動的 いいえ 型 文字列 MySQL が構築されているオペレーティングシステムのタイプ。
-
コマンド行形式 --wait-timeout=#
システム変数 wait_timeout
スコープ グローバル、セッション 動的 はい 型 数値 デフォルト 28800
最小値 1
最大値 (その他) 31536000
最大値 (Windows) 2147483
非インタラクティブな接続を閉じる前に、サーバーがその接続上でアクティビティーを待機する秒数。
スレッド開始時に、セッションの
wait_timeout
値は、wait_timeout
グローバル値またはinteractive_timeout
グローバル値で初期化されますが、いずれになるかはクライアントのタイプ (mysql_real_connect()
に対するCLIENT_INTERACTIVE
接続オプションによって定義される) によって決まります。interactive_timeout
も参照してください。 -
メッセージを生成した最後のステートメントから得られたエラー、警告、および注意の数。この変数は読み取り専用です。セクション13.7.5.41「SHOW WARNINGS 構文」を参照してください。