MySQL サーバーは、その操作を構成する多くのシステム変数を保持します。 各システム変数にはデフォルト値があります。 システム変数は、コマンド行のオプションを使用するか、オプションファイルでサーバー起動時に設定できます。 これらのほとんどは、実行時に SET
ステートメントを使用して動的に変更できます。これにより、サーバーを停止して再起動しなくても、サーバーの操作を変更できます。 式でシステム変数値を使用することもできます。
グローバルシステム変数のランタイム値を設定するには、通常、SYSTEM_VARIABLES_ADMIN
権限 (または非推奨の SUPER
権限) が必要です。 セッションシステムランタイム変数値を設定する場合、通常は特別な権限は必要なく、すべてのユーザーが実行できますが、例外があります。 詳細は、セクション5.1.9.1「システム変数権限」を参照してください
システム変数の名前と値を表示するにはいくつかの方法があります。
-
サーバーが使用する値を、コンパイル済みのデフォルト値と、そのサーバーが読み取るオプションファイルに基づいて表示するには、次のコマンドを使用します:
mysqld --verbose --help
-
コンパイルされたデフォルト値のみに基づいてサーバーが使用する値を表示し、オプションファイルの設定を無視するには、次のコマンドを使用します:
mysqld --no-defaults --verbose --help
実行中のサーバーで使用されている現在の値を表示するには、
SHOW VARIABLES
ステートメントまたはパフォーマンススキーマシステム変数テーブルを使用します。 セクション27.12.14「パフォーマンススキーマシステム変数テーブル」を参照してください。
このセクションでは各システム変数について説明します。 システム変数サマリーテーブルについては、セクション5.1.5「サーバーシステム変数リファレンス」 を参照してください。 システム変数の操作の詳細は、セクション5.1.9「システム変数の使用」 を参照してください。
追加のシステム変数情報については、次のセクションを参照してください。
セクション5.1.9「システム変数の使用」では、システム変数値の設定および表示の構文について説明します。
セクション5.1.9.2「動的システム変数」では、実行時に設定できる変数を一覧表示しています。
システム変数の調整に関する情報は、セクション5.1.1「サーバーの構成」を参照してください。
セクション15.14「InnoDB の起動オプションおよびシステム変数」では、
InnoDB
システム変数を一覧表示しています。セクション23.3.3.9.2「NDB Cluster システム変数」 では、NDB Cluster に固有のシステム変数を一覧表示します。
レプリケーションに固有のサーバーシステム変数については、セクション17.1.6「レプリケーションおよびバイナリロギングのオプションと変数」を参照してください。
次の変数説明の一部では、変数を「有効にする」または「無効にする」ことについて述べています。 これらの変数は SET
ステートメントを ON
または 1
に設定すると有効になり、あるいは OFF
または 0
に設定すると無効になります。 ブール変数は、起動時に値 ON
, TRUE
, OFF
、FALSE
(大/小文字の区別なし)、および 1
と 0
に設定できます。 セクション4.2.2.4「プログラムオプション修飾子」を参照してください。
一部のシステム変数はバッファーまたはキャッシュのサイズを制御します。 所定のバッファーについて、サーバーは内部データ構造を割り当てる必要がある場合もあります。 これらの構造は、バッファーに割り当てられた合計メモリーから割り当てられ、必要なスペースの量はプラットフォームに依存することがあります。 つまり、バッファーサイズを制御するシステム変数に値を割り当てたとき、実際に使用可能なスペースの量が、割り当てられた値と異なる場合もあることを意味します。 一部の場合では、この量は割り当てられた値より少ないこともあります。 サーバーが値を上方に調整することもできます。 たとえば、最小値が 1024 の変数に値 0 を割り当てると、サーバーは値を 1024 に設定します。
バッファーサイズ、長さ、およびスタックサイズの値は、別途指定しないかぎりバイト単位で指定されます。
一部のシステム変数はファイル名の値を取ります。 別途指定しないかぎり、値が相対パス名であれば、デフォルトのファイルの場所はデータディレクトリです。 場所を明示的に指定するには、絶対パス名を使用します。 たとえばデータディレクトリが /var/mysql/data
だとします。 ファイル値変数を相対パス名として指定すると、/var/mysql/data
の下に配置されます。 値が絶対パス名である場合、その場所はパス名によって指定されます。
-
コマンド行形式 --activate-all-roles-on-login[={OFF|ON}]
システム変数 activate_all_roles_on_login
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
ユーザーがサーバーにログインしたときに、付与されたすべてのロールの自動アクティブ化を有効にするかどうか:
activate_all_roles_on_login
が有効な場合、サーバーはログイン時に各アカウントに付与されたすべてのロールをアクティブ化します。 これは、SET DEFAULT ROLE
で指定されたデフォルトのロールよりも優先されます。activate_all_roles_on_login
が無効になっている場合、サーバーはログイン時にSET DEFAULT ROLE
で指定されたデフォルトのロール (存在する場合) をアクティブ化します。
付与されるロールには、ユーザーに明示的に付与されるロールと、
mandatory_roles
システム変数値で指定されるロールが含まれます。activate_all_roles_on_login
は、ログイン時、および定義者コンテキストで実行されるストアドプログラムおよびビューの実行開始時にのみ適用されます。 セッション内のアクティブなロールを変更するには、SET ROLE
を使用します。 ストアドプログラムのアクティブなロールを変更するには、プログラム本体でSET ROLE
を実行する必要があります。 -
コマンド行形式 --admin-address=addr
導入 8.0.14 システム変数 admin_address
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 管理ネットワークインタフェースで TCP/IP 接続をリスニングする IP アドレス (セクション5.1.12.1「接続インタフェース」 を参照)。 デフォルトの
admin_address
値はありません。 この変数が起動時に指定されない場合、サーバーは管理インタフェースを維持しません。 サーバーには、通常の (非管理) クライアント TCP/IP 接続を構成するためのbind_address
システム変数もあります。 セクション5.1.12.1「接続インタフェース」を参照してください。admin_address
が指定されている場合、その値は次の要件を満たす必要があります:値は、単一の IPv4 アドレス、IPv6 アドレスまたはホスト名である必要があります。
値にワイルドカードアドレス書式 (
*
、0.0.0.0
または::
) は指定できません。MySQL 8.0.22 の時点では、値にネットワークネームスペース指定子が含まれる場合があります。
IP アドレスは、IPv4 または IPv6 アドレスとして指定できます。 値がホスト名の場合、サーバーは名前を IP アドレスに解決し、そのアドレスにバインドします。 ホスト名が複数の IP アドレスに解決される場合、サーバーは最初の IPv4 アドレス (存在する場合) または最初の IPv6 アドレスを使用します。
サーバーはさまざまなタイプのアドレスを次のように処理します。
アドレスが IPv4 にマップ済みのアドレスの場合、サーバーは IPv4 または IPv6 のいずれかの形式で、そのアドレスの TCP/IP 接続を受け入れます。 たとえば、サーバーが
::ffff:127.0.0.1
にバインドされている場合、クライアントは--host=127.0.0.1
または--host=::ffff:127.0.0.1
のいずれかを使用して接続できます。アドレスが「通常の」 IPv4 または IPv6 アドレスの場合 (
127.0.0.1
や::1
など)、サーバーはその IPv4 または IPv6 アドレスについてのみ TCP/IP 接続を受け入れます。
アドレスのネットワークネームスペースの指定には、次のルールが適用されます:
ネットワークネームスペースは、IP アドレスまたはホスト名に指定できます。
ワイルドカード IP アドレスにはネットワークネームスペースを指定できません。
指定されたアドレスでは、ネットワーク名前空間はオプションです。 指定する場合は、アドレスの直後に
/
接尾辞として指定する必要があります。ns
/
接尾辞のないアドレスは、ホストシステムのグローバルネームスペースを使用します。 したがって、グローバルネームスペースがデフォルトです。ns
/
接尾辞の付いたアドレスは、ns
ns
という名前のネームスペースを使用します。ホストシステムはネットワークネームスペースをサポートしている必要があり、各名前付きネームスペースは事前に設定されている必要があります。 存在しないネームスペースに名前を付けると、エラーが発生します。
ネットワークネームスペースの詳細は、セクション5.1.14「ネットワークネームスペースのサポート」 を参照してください。
アドレスへのバインドが失敗した場合、サーバーはエラーを生成し、起動しません。
admin_address
システム変数は、サーバーを通常のクライアント接続のアドレスにバインドするbind_address
システム変数と似ていますが、次の点が異なります:bind_address
では、複数のアドレスが許可されます。admin_address
では、単一のアドレスが許可されます。bind_address
では、ワイルドカードアドレスが許可されます。admin_address
はそうではありません。
-
コマンド行形式 --admin-port=port_num
導入 8.0.14 システム変数 admin_port
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 33062
最小値 0
最大値 65535
管理ネットワークインタフェースでの接続に使用する TCP/IP ポート番号 (セクション5.1.12.1「接続インタフェース」 を参照)。 この変数を 0 に設定すると、デフォルト値が使用されます。
admin_address
が指定されていない場合、サーバーは管理ネットワークインタフェースを保持しないため、admin_port
を設定しても効果はありません。 -
コマンド行形式 --admin-ssl-ca=file_name
導入 8.0.21 システム変数 admin_ssl_ca
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
admin_ssl_ca
システム変数はssl_ca
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-capath=dir_name
導入 8.0.21 システム変数 admin_ssl_capath
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULL
admin_ssl_capath
システム変数はssl_capath
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-cert=file_name
導入 8.0.21 システム変数 admin_ssl_cert
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
admin_ssl_cert
システム変数はssl_cert
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-cipher=name
導入 8.0.21 システム変数 admin_ssl_cipher
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 NULL
admin_ssl_cipher
システム変数はssl_cipher
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-crl=file_name
導入 8.0.21 システム変数 admin_ssl_crl
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
admin_ssl_crl
システム変数はssl_crl
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-crlpath=dir_name
導入 8.0.21 システム変数 admin_ssl_crlpath
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULL
admin_ssl_crlpath
システム変数はssl_crlpath
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-key=file_name
導入 8.0.21 システム変数 admin_ssl_key
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
admin_ssl_key
システム変数はssl_key
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-tls-ciphersuites=ciphersuite_list
導入 8.0.21 システム変数 admin_tls_ciphersuites
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 NULL
admin_tls_ciphersuites
システム変数はtls_ciphersuites
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-tls-version=protocol_list
導入 8.0.21 システム変数 admin_tls_version
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
(OpenSSL 1.1.1 以上)TLSv1,TLSv1.1,TLSv1.2
(otherwise)admin_tls_version
システム変数はtls_version
と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
authentication_windows_log_level
コマンド行形式 --authentication-windows-log-level=#
システム変数 authentication_windows_log_level
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 2
最小値 0
最大値 4
この変数は、
authentication_windows
Windows 認証プラグインが使用可能で、デバッグコードが有効な場合のみ使用できます。 セクション6.4.1.6「Windows プラガブル認証」を参照してください。この変数は、Windows 認証プラグインのロギングレベルを設定します。 次の表は、許可される値を示しています。
値 説明 0 ロギングなし 1 エラーメッセージのみログに記録します 2 レベル 1 メッセージおよび警告メッセージをログに記録します 3 レベル 2 メッセージおよび情報メモをログに記録します 4 レベル 3 メッセージおよびデバッグメッセージをログに記録します -
authentication_windows_use_principal_name
コマンド行形式 --authentication-windows-use-principal-name[={OFF|ON}]
システム変数 authentication_windows_use_principal_name
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
この変数は、
authentication_windows
Windows 認証プラグインが使用可能な場合のみ使用できます。 セクション6.4.1.6「Windows プラガブル認証」を参照してください。InitSecurityContext()
関数を使用して認証するクライアントは、接続するサービスを識別する文字列を提供する必要があります (targetName
)。 MySQL は、サーバーが実行するアカウントの主体名 (UPN) を使用します。 UPN は
という形式で、使用される場所に登録される必要はありません。 この UPN は、認証ハンドシェイクの最初にサーバーによって送信されます。user_id
@computer_name
この変数は、サーバーが初期チャレンジで UPN を送信するかどうかを制御します。 デフォルトでは、変数は有効になっています。 セキュリティー上の理由から、サーバーアカウント名をクリアテキストとしてクライアントに送信しないように無効にできます。 変数が無効な場合、サーバーは最初のチャレンジで常に
0x00
バイトを送信し、クライアントはtargetName
を指定せず、結果として NTLM 認証が使用されます。サーバーが UPN の取得に失敗した場合 (主に Kerberos 認証をサポートしていない環境で発生)、UPN はサーバーによって送信されず、NTLM 認証が使用されます。
-
コマンド行形式 --autocommit[={OFF|ON}]
システム変数 autocommit
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 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[={OFF|ON}]
システム変数 automatic_sp_privileges
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
この変数の値が 1 (デフォルト) のとき、ユーザーがルーチンを実行して変更したりドロップしたりできない場合、サーバーは自動的に
EXECUTE
およびALTER ROUTINE
の権限をストアドルーチンの作成者に付与します。 (ルーチンをドロップするにはALTER ROUTINE
権限が必要です。) ルーチンがドロップされると、サーバーはそれらの権限を作成者から自動的にドロップします。automatic_sp_privileges
が 0 の場合、サーバーはこれらの権限を自動的に追加またはドロップしません。ルーチンの作成者は、ルーチンの
CREATE
ステートメントを実行するために使用されるアカウントです。 これは、ルーチン定義でDEFINER
として名前が指定されているアカウントと同じでないことがあります。--skip-new
を使用して mysqld を起動すると、automatic_sp_privileges
はOFF
に設定されます。セクション25.2.2「ストアドルーチンと MySQL 権限」も参照してください。
-
コマンド行形式 --auto-generate-certs[={OFF|ON}]
システム変数 auto_generate_certs
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
この変数は、サーバーが SSL キーおよび証明書ファイルをデータディレクトリに自動生成するかどうかを制御します (まだ存在しない場合)。
起動時に、
auto_generate_certs
システム変数が有効で、--ssl
以外の SSL オプションが指定されておらず、サーバー側の SSL ファイルがデータディレクトリから欠落している場合、サーバーはサーバー側およびクライアント側の SSL 証明書とキーファイルをデータディレクトリに自動的に生成します。 これらのファイルにより、SSL を使用したセキュアなクライアント接続が可能になります。セクション6.3.1「暗号化接続を使用するための MySQL の構成」 を参照してください。ファイル名や特性など、SSL ファイルの自動生成の詳細は、セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」 を参照してください
sha256_password_auto_generate_rsa_keys
およびcaching_sha2_password_auto_generate_rsa_keys
システム変数は関連していますが、暗号化されていない RSA 接続を使用したセキュアなパスワード交換に必要な RSA キーペアファイルの自動生成を制御します。 -
コマンド行形式 --avoid-temporal-upgrade[={OFF|ON}]
非推奨 はい システム変数 avoid_temporal_upgrade
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、
ALTER TABLE
が、5.6.4 より前の形式 (TIME
、DATETIME
およびTIMESTAMP
カラムで小数秒精度をサポートしない) で検出された一時カラムを暗黙的にアップグレードするかどうかを制御します。 このようなカラムをアップグレードするには、テーブルの再構築が必要です。これにより、操作に適用される可能性のある高速変更が使用されなくなります。この変数はデフォルトでは無効になっています。 これを有効にすると、
ALTER TABLE
は時間的カラムを再構築しないため、可能な高速変更を利用できます。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
コマンド行形式 --back-log=#
システム変数 back_log
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 -1
(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 1
最大値 65535
MySQL で保持できる未処理の接続リクエストの数。 これはメインの MySQL スレッドが非常に短時間で非常に多くの接続リクエストを受け取る場合に効果をあらわします。 次に、メインスレッドが接続を検査し新規スレッドを開始するまで (非常に短いですが) 少し時間がかかります。
back_log
値は、MySQL が新規リクエストへの回答を一時的に停止するまでの短い時間に、スタック可能なリクエストの数を示します。 短い時間に大量の接続が予想される場合にかぎり、これを増加する必要があります。つまり、この値は着信 TCP/IP 接続の listen キューのサイズです。 使用しているオペレーティングシステムには、このキューのサイズについて独自の制限があります。 UNIX
listen()
システムコールのマニュアルページに、詳細情報があります。 この変数の最大値については OS のドキュメントを確認してください。back_log
をオペレーティングシステムの制限を超える設定はできません。デフォルト値は
max_connections
の値です。これにより、許可されたバックログを最大許容接続数に調整できます。 -
コマンド行形式 --basedir=dir_name
システム変数 basedir
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 デフォルト値 parent of mysqld installation directory
MySQL インストールベースディレクトリへのパス。
-
コマンド行形式 --big-tables[={OFF|ON}]
システム変数 big_tables
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
有効にすると、サーバーはすべての一時テーブルをメモリーではなくディスクに格納します。 これにより、大規模な一時テーブルを必要とする
SELECT
操作のほとんどのThe table
エラーが回避されますが、インメモリーテーブルで十分なクエリーが遅くなります。tbl_name
is full新しい接続のデフォルト値は
OFF
です (インメモリー一時テーブルを使用)。 通常、この変数を有効にする必要はありません。 インメモリー internal 一時テーブルがTempTable
ストレージエンジンによって管理され (デフォルト)、TempTable
ストレージエンジンが占有できるメモリーの最大量を超えると、TempTable
ストレージエンジンはディスク上の一時ファイルへのデータの格納を開始します。 インメモリー一時テーブルがMEMORY
ストレージエンジンによって管理される場合、インメモリーテーブルは必要に応じてディスクベースのテーブルに自動的に変換されます。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --bind-address=addr
システム変数 bind_address
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 *
MySQL サーバーは、1 つ以上のネットワークソケットで TCP/IP 接続をリスニングします。 各ソケットは 1 つのアドレスにバインドされますが、1 つのアドレスを複数のネットワークインタフェースにマップできます。 サーバーが TCP/IP 接続をリスニングする方法を指定するには、サーバーの起動時に
bind_address
システム変数を設定します。 サーバーには、専用インタフェースでの管理接続を可能にするadmin_address
システム変数もあります。 セクション5.1.12.1「接続インタフェース」を参照してください。bind_address
が指定されている場合、その値は次の要件を満たす必要があります:MySQL 8.0.13 より前では、
bind_address
は単一のアドレス値を受け入れます。この値には、単一のワイルドカード以外の IP アドレスまたはホスト名、あるいは複数のネットワークインタフェース (*
、0.0.0.0
または::
) でのリスニングを許可するワイルドカードアドレス形式のいずれかを指定できます。MySQL 8.0.13 では、
bind_address
は前述の単一の値またはカンマ区切り値のリストを受け入れます。 変数が複数の値のリストを指定する場合、各値は単一のワイルドカード以外の IP アドレス (IPv4 または IPv6) またはホスト名を指定する必要があります。 ワイルドカードアドレス書式 (*
、0.0.0.0
または::
) は、値リストでは使用できません。MySQL 8.0.22 の時点では、アドレスにネットワーク名前空間指定子を含めることができます。
IP アドレスは、IPv4 または IPv6 アドレスとして指定できます。 ホスト名である値の場合、サーバーは名前を IP アドレスに解決し、そのアドレスにバインドします。 ホスト名が複数の IP アドレスに解決される場合、サーバーは最初の IPv4 アドレス (存在する場合) または最初の IPv6 アドレスを使用します。
サーバーはさまざまなタイプのアドレスを次のように処理します。
アドレスが
*
の場合、サーバーはすべてのサーバーホスト IPv4 インタフェースで TCP/IP 接続を受け入れ、サーバーホストが IPv6 をサポートしている場合はすべての IPv6 インタフェースで TCP/IP 接続を受け入れます。 すべてのサーバーインタフェース上の IPv4 および IPv6 の両方の接続を許可するには、このアドレスを使用します。 この値がデフォルトです。 変数で複数の値のリストが指定されている場合、この値は許可されません。アドレスが
0.0.0.0
の場合、サーバーはすべてのサーバーホスト IPv4 インタフェース上の TCP/IP 接続を受け入れます。 変数で複数の値のリストが指定されている場合、この値は許可されません。アドレスが
::
の場合、サーバーはすべてのサーバーホスト IPv4 および IPv6 インタフェース上の TCP/IP 接続を受け入れます。 変数で複数の値のリストが指定されている場合、この値は許可されません。アドレスが IPv4 にマップ済みのアドレスの場合、サーバーは IPv4 または IPv6 のいずれかの形式で、そのアドレスの TCP/IP 接続を受け入れます。 たとえば、サーバーが
::ffff:127.0.0.1
にバインドされている場合、クライアントは--host=127.0.0.1
または--host=::ffff:127.0.0.1
のいずれかを使用して接続できます。アドレスが「通常の」 IPv4 または IPv6 アドレスの場合 (
127.0.0.1
や::1
など)、サーバーはその IPv4 または IPv6 アドレスについてのみ TCP/IP 接続を受け入れます。
アドレスのネットワークネームスペースの指定には、次のルールが適用されます:
ネットワークネームスペースは、IP アドレスまたはホスト名に指定できます。
ワイルドカード IP アドレスにはネットワークネームスペースを指定できません。
指定されたアドレスでは、ネットワーク名前空間はオプションです。 指定する場合は、アドレスの直後に
/
接尾辞として指定する必要があります。ns
/
接尾辞のないアドレスは、ホストシステムのグローバルネームスペースを使用します。 したがって、グローバルネームスペースがデフォルトです。ns
/
接尾辞の付いたアドレスは、ns
ns
という名前のネームスペースを使用します。ホストシステムはネットワークネームスペースをサポートしている必要があり、各名前付きネームスペースは事前に設定されている必要があります。 存在しないネームスペースに名前を付けると、エラーが発生します。
変数値に複数のアドレスが指定されている場合は、グローバルネームスペース、名前付きネームスペースまたはその組合せにアドレスを含めることができます。
ネットワークネームスペースの詳細は、セクション5.1.14「ネットワークネームスペースのサポート」 を参照してください。
いずれかのアドレスへのバインドが失敗した場合、サーバーはエラーを生成し、起動しません。
例:
-
bind_address=*
サーバーは、
*
ワイルドカードで指定されたすべての IPv4 または IPv6 アドレスでリスニングします。 -
bind_address=198.51.100.20
サーバーは、
198.51.100.20
IPv4 アドレスでのみリスニングします。 -
bind_address=198.51.100.20,2001:db8:0:f101::1
サーバーは、
198.51.100.20
IPv4 アドレスおよび2001:db8:0:f101::1
IPv6 アドレスでリスニングします。 -
bind_address=198.51.100.20,*
bind_address
が複数の値のリストに名前を付ける場合、ワイルドカードアドレスは許可されないため、エラーが発生します。 -
bind_address=198.51.100.20/red,2001:db8:0:f101::1/blue,192.0.2.50
サーバーは、
red
名前空間の198.51.100.20
IPv4 アドレス、blue
名前空間の2001:db8:0:f101::1
IPv6 アドレス、およびグローバル名前空間の192.0.2.50
IPv4 アドレスで待機します。
bind_address
が単一の値 (ワイルドカードまたは非ワイルドカード) に名前を付けると、サーバーは単一のソケットでリスニングし、ワイルドカードアドレスは複数のネットワークインタフェースにバインドできます。bind_address
が複数の値のリストに名前を付けると、サーバーは値ごとに 1 つのソケットをリスニングし、各ソケットは単一のネットワークインタフェースにバインドされます。 ソケットの数は、指定された値の数と線形です。 オペレーティングシステムの connection-acceptance 効率によっては、長い値のリストで TCP/IP 接続を受け入れるためのパフォーマンスペナルティが発生する場合があります。リスニングソケットおよびネットワークネームスペースファイルにはファイル記述子が割り当てられるため、
open_files_limit
システム変数を増やす必要がある場合があります。サーバーを特定のアドレスにバインドする場合は、そのアドレスへの接続に使用できる管理権限を持つアカウントが
mysql.user
システムテーブルに含まれていることを確認してください。 そうしないと、サーバーを停止できません。 たとえば、サーバーを*
にバインドしている場合、すべての既存のアカウントを使用して接続できます。 ただし、サーバーを::1
にバインドしている場合、そのアドレスの接続のみ受け入れます。 この場合、'root'@'::1'
アカウントがmysql.user
テーブルに存在することをまず確認して、サーバーに接続してシャットダウンできることをたしかめます。 -
コマンド行形式 --block-encryption-mode=#
システム変数 block_encryption_mode
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 aes-128-ecb
この変数は、AES などのブロックベースのアルゴリズムのブロック暗号化モードを制御します。 これは
AES_ENCRYPT()
およびAES_DECRYPT()
の暗号化に影響します。block_encryption_mode
はaes-
形式の値を取り、ここでkeylen
-mode
keylen
はビット単位の鍵の長さ、mode
は暗号化モードです。 値では大文字と小文字は区別されません。 許可されるkeylen
値は 128、192、および 256 です。 許可されるmode
値は、ECB
,CBC
,CFB1
,CFB8
,CFB128
およびOFB
です。たとえば次のステートメントでは、AES 暗号化機能が 256 ビットの鍵の長さおよび CBC モードを使用します。
SET block_encryption_mode = 'aes-256-cbc';
サポートされない鍵の長さや SSL ライブラリがサポートしないモードを含む値に
block_encryption_mode
を設定しようとすると、エラーが発生します。 -
コマンド行形式 --bulk-insert-buffer-size=#
システム変数 bulk_insert_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 8388608
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
MyISAM
では、空でないテーブルにデータを追加する際に、INSERT ... SELECT
、INSERT ... VALUES (...), (...), ...
およびLOAD DATA
のバルク挿入を高速化するために、特別なツリー形式のキャッシュを使用します。 この変数は、スレッドあたりのバイト単位のキャッシュツリーのサイズを制限します。 これを 0 に設定すると、この最適化が無効になります。 デフォルトの値は 8M バイトです。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
caching_sha2_password_digest_rounds
コマンド行形式 --caching-sha2-password-digest-rounds=#
導入 8.0.24 システム変数 caching_sha2_password_digest_rounds
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 5000
最小値 5000
最大値 4095000
パスワード記憶域用の
caching_sha2_password
認証プラグインで使用されるハッシュラウンドの数。ハッシングラウンドの数をデフォルト値より大きくすると、増加量に関連するパフォーマンスペナルティが発生します:
caching_sha2_password
プラグインを使用するアカウントを作成しても、アカウントが作成されるクライアントセッションには影響しませんが、サーバーはハッシングラウンドを実行して操作を完了する必要があります。アカウントを使用するクライアント接続の場合、サーバーはハッシングラウンドを実行し、結果をキャッシュに保存する必要があります。 その結果、最初のクライアント接続のログイン時間は長くなりますが、後続の接続のログイン時間は長くなりません。 この動作は、サーバーを再起動するたびに発生します。
-
caching_sha2_password_auto_generate_rsa_keys
コマンド行形式 --caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]
システム変数 caching_sha2_password_auto_generate_rsa_keys
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
サーバーはこの変数を使用して、RSA 秘密/公開鍵ペアファイルがまだ存在しない場合に、それらをデータディレクトリに自動生成するかどうかを決定します。
これらの条件がすべて満たされている場合、サーバーは起動時に RSA 秘密キー/公開キーのペアファイルをデータディレクトリに自動的に生成:
sha256_password_auto_generate_rsa_keys
またはcaching_sha2_password_auto_generate_rsa_keys
システム変数が有効になっており、RSA オプションが指定されていません。RSA ファイルがデータディレクトリにありません。 これらのキーペアファイルを使用すると、sha256_password
またはcaching_sha2_password
プラグインによって認証されたアカウントに対して、暗号化されていない RSA 接続を使用したセキュアなパスワード交換が可能になります。セクション6.4.1.3「SHA-256 プラガブル認証」 および セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。RSA ファイルの自動生成の詳細 (ファイル名や特性など) は、セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」 を参照してください
auto_generate_certs
システム変数は関連していますが、SSL を使用したセキュアな接続に必要な SSL 証明書およびキーファイルの自動生成を制御します。 -
caching_sha2_password_private_key_path
コマンド行形式 --caching-sha2-password-private-key-path=file_name
システム変数 caching_sha2_password_private_key_path
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 private_key.pem
この変数は、
caching_sha2_password
認証プラグインの RSA 秘密キーファイルのパス名を指定します。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。重要このファイルは秘密鍵を格納しているため、MySQL Server のみがファイルを読み取りできるようにファイルのアクセスモードを制限します。
caching_sha2_password
の詳細は、セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。 -
caching_sha2_password_public_key_path
コマンド行形式 --caching-sha2-password-public-key-path=file_name
システム変数 caching_sha2_password_public_key_path
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 public_key.pem
この変数は、
caching_sha2_password
認証プラグインの RSA 公開キーファイルのパス名を指定します。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。クライアントが RSA 公開キーをリクエストする方法など、
caching_sha2_password
の詳細は、セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。 -
システム変数 character_set_client
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4
クライアントから到達するステートメントの文字セット。 この変数のセッション値は、クライアントがサーバーに接続するときにクライアントによってリクエストされる文字セットを使用して設定されます。 (多くのクライアントは、この文字セットを明示的に指定するための
--default-character-set
オプションをサポートします。 セクション10.4「接続文字セットおよび照合順序」も参照してください。) クライアントがリクエストする値が不明または利用できないか、サーバーがクライアントリクエストを無視するように構成されている場合、セッション値を設定するよう変数のグローバル値が使用されます。クライアントがリクエストする文字セットがサーバーで認識されない場合。 たとえば、日本語に対応したクライアントが、
sjis
サポートを構成されていないサーバーに接続するときにsjis
をリクエストする場合があります。クライアントの MySQL バージョンが MySQL 4.1 よりも古いため、文字セットをリクエストしない場合。
mysqld が
--skip-character-set-client-handshake
オプションを使用して開始された場合、これによってクライアント文字セット構成が無視されます。 これによって MySQL 4.0 の動作が再現されるため、すべてのクライアントをアップグレードしないでサーバーをアップグレードする場合に便利です。
一部の文字セットは、クライアントの文字セットとして使用できません。 これらを
character_set_client
値として使用しようとすると、エラーが発生します。 許可されていないクライアント文字セットを参照してください。 -
システム変数 character_set_connection
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4
文字セットイントロデューサなしで指定されたリテラルおよび数値から文字列への変換に使用される文字セット。 イントロデューサについては、セクション10.3.8「文字セットイントロデューサ」 を参照してください。
-
システム変数 character_set_database
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4
脚注 このオプションは動的ですが、サーバーによってのみ設定する必要があります。 この変数は手動で設定しないでください。 デフォルトデータベースで使用される文字セット。 デフォルトのデータベースが変更されるたびに、サーバーはこの変数を設定します。 デフォルトデータベースが存在しない場合、変数は
character_set_server
と同じ値になります。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
グローバル
character_set_database
およびcollation_database
システム変数は非推奨です。将来のバージョンの MySQL で削除される予定です。セッション
character_set_database
およびcollation_database
システム変数への値の割当ては非推奨になり、割当てによって警告が生成されます。 MySQL の将来のバージョンでは、セッション変数にアクセスしてデフォルトデータベースのデータベース文字セットおよび照合を決定できるように、セッション変数が読取り専用になる (およびエラーを生成するために割り当てられる) ことを想定します。 -
コマンド行形式 --character-set-filesystem=name
システム変数 character_set_filesystem
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 binary
ファイルシステムの文字セット。 この変数は、
LOAD DATA
ステートメント、SELECT ... INTO OUTFILE
ステートメント、LOAD_FILE()
関数など、ファイル名を参照する文字列リテラルを解釈するために使用されます。 このようなファイル名は、ファイルを開くよう試行する前にcharacter_set_client
からcharacter_set_filesystem
に変換されます。 デフォルト値はbinary
で、変換が行われないことを意味します。 マルチバイトファイル名が許可されるシステムについては、別の値が適切な場合もあります。 たとえば、システムが UTF-8 を使用してファイル名を表す場合は、character_set_filesystem
を'utf8mb4'
に設定します。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
システム変数 character_set_results
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4
クエリー結果をクライアントに返すために使用される文字セット。 これには、カラム値、結果メタデータ (カラム名など)、エラーメッセージなどの結果データが含まれます。
-
コマンド行形式 --character-set-server=name
システム変数 character_set_server
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4
サーバーのデフォルトの文字セット。 セクション10.15「文字セットの構成」を参照してください。 この変数を設定する場合は、文字セットの照合順序を指定するように
collation_server
も設定する必要があります。 -
システム変数 character_set_system
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8
識別子を格納するためにサーバーで使用される文字セット。 この値は常に
utf8
です。 -
コマンド行形式 --character-sets-dir=dir_name
システム変数 character_sets_dir
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 文字セットがインストールされているディレクトリ。 セクション10.15「文字セットの構成」を参照してください。
-
コマンド行形式 --check-proxy-users[={OFF|ON}]
システム変数 check_proxy_users
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
一部の認証プラグインは、プロキシユーザーマッピングを実装しています (PAM や Windows 認証プラグインなど)。 その他の認証プラグインは、デフォルトではプロキシユーザーをサポートしていません。 その中には、付与されたプロキシ権限に従って、MySQL サーバー自体がプロキシユーザーをマップするようにリクエストできるものがあります:
mysql_native_password
、sha256_password
。check_proxy_users
システム変数が有効になっている場合、サーバーは、このようなリクエストを行う認証プラグインに対してプロキシユーザーマッピングを実行します。 ただし、サーバープロキシユーザーマッピングのサポートを利用するには、プラグイン固有のシステム変数を有効にする必要がある場合もあります:mysql_native_password
プラグインの場合は、mysql_native_password_proxy_users
を有効にします。sha256_password
プラグインの場合は、sha256_password_proxy_users
を有効にします。
ユーザープロキシの詳細は、セクション6.2.18「プロキシユーザー」 を参照してください。
-
システム変数 collation_connection
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 接続文字セットの照合順序。
collation_connection
は、リテラル文字列の比較に重要です。 カラム値と文字列を比較する場合、collation_connection
は関係ありません。これは、カラムには照合優先度の高い独自の照合があるためです (セクション10.8.4「式での照合の強制性」 を参照)。 -
システム変数 collation_database
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4_0900_ai_ci
脚注 このオプションは動的ですが、サーバーによってのみ設定する必要があります。 この変数は手動で設定しないでください。 デフォルトデータベースで使用される照合。 デフォルトのデータベースが変更されるたびに、サーバーはこの変数を設定します。 デフォルトデータベースが存在しない場合、変数は
collation_server
と同じ値になります。MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
グローバル
character_set_database
およびcollation_database
システム変数は非推奨です。将来のバージョンの MySQL で削除される予定です。セッション
character_set_database
およびcollation_database
システム変数への値の割当ては非推奨になり、割当てによって警告が生成されます。 MySQL の将来のバージョンでは、セッション変数にアクセスしてデフォルトデータベースのデータベース文字セットおよび照合を決定できるように、セッション変数が読取り専用 (およびエラーを生成する割当て) になることを想定しています。 -
コマンド行形式 --collation-server=name
システム変数 collation_server
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4_0900_ai_ci
サーバーのデフォルトの照合順序。 セクション10.15「文字セットの構成」を参照してください。
-
コマンド行形式 --completion-type=#
システム変数 completion_type
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 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[=value]
システム変数 concurrent_insert
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 AUTO
有効な値 NEVER
AUTO
ALWAYS
0
1
2
AUTO
(デフォルト) の場合、MySQL ではデータファイルの中間に空きブロックがないMyISAM
テーブルに対してINSERT
およびSELECT
ステートメントを同時に実行することが許可されます。この変数は、次の表に示す値を取ることができます。 変数は、名前の値か対応する整数値のいずれかを使用して割り当てることができます。
値 説明 NEVER
(または 0)同時挿入を無効にします AUTO
(または 1)(デフォルト) 空きブロックがない MyISAM
テーブルについての同時挿入を有効にしますALWAYS
(または 2)空きブロックがあるテーブルであっても、すべての MyISAM
テーブルについての同時挿入を有効にします。 途中に空きブロックのあるテーブルが別のスレッドによって使用されている場合は、新しい行がテーブルの最後に挿入されます。 そうでない場合は、MySQL は正常な書き込みロックを取得し、行を空きブロックに挿入します。--skip-new
を使用して mysqld を起動すると、concurrent_insert
はNEVER
に設定されます。セクション8.11.3「同時挿入」も参照してください。
-
コマンド行形式 --connect-timeout=#
システム変数 connect_timeout
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 10
最小値 2
最大値 31536000
mysqld サーバーが
ハンドシェイクエラー
を返すまでに接続パケットを待つ秒数。 デフォルトは 10 秒です。「Lost connection to MySQL server at '
という形式のエラーがクライアントで頻繁に発生する場合、XXX
', system error:errno
」connect_timeout
値を増やすと役立つことがあります。 -
システム変数 core_file
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
サーバーが予期せず終了した場合にコアファイルを書き込むかどうか。 この変数は
--core-file
オプションによって設定されます。 -
コマンド行形式 --create-admin-listener-thread[={OFF|ON}]
導入 8.0.14 システム変数 create_admin_listener_thread
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
管理ネットワークインタフェースでクライアント接続専用のリスニングスレッドを使用するかどうか (セクション5.1.12.1「接続インタフェース」 を参照)。 デフォルトは
OFF
です。つまり、メインインタフェース上の通常の接続のマネージャスレッドは、管理インタフェースの接続も処理します。プラットフォームタイプやワークロードなどの要因によっては、この変数の一方の設定により、他方の設定よりもパフォーマンスが向上する場合があります。
admin_address
が指定されていない場合、サーバーは管理ネットワークインタフェースを保持しないため、create_admin_listener_thread
を設定しても効果はありません。 -
コマンド行形式 --cte-max-recursion-depth=#
システム変数 cte_max_recursion_depth
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1000
最小値 0
最大値 4294967295
共通テーブル式 (CTE) の最大再帰深度。 サーバーは、この変数の値よりも多くのレベルを繰り返す CTE の実行を終了します。 詳細は、共通テーブル式の再帰の制限を参照してください。
-
コマンド行形式 --datadir=dir_name
システム変数 datadir
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 MySQL サーバーデータディレクトリへのパス。 相対パスは、現在のディレクトリに関して解決されます。 サーバーを自動的に (つまり、事前に現在のディレクトリを認識できないコンテキストで) 起動する場合は、
datadir
値を絶対パスとして指定することをお薦めします。 -
コマンド行形式 --debug[=debug_options]
システム変数 debug
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 (Unix) d:t:i:o,/tmp/mysqld.trace
デフォルト値 (Windows) d:t:i:O,\mysqld.trace
この変数は現在のデバッグ設定を指定します。 これはデバッグサポートを使用して構築されたサーバーについてのみ使用できます。 初期値は、サーバー始動時に指定された
--debug
オプションのインスタンスの値から取得されます。 グローバル値とセッション値は、実行時に設定できます。このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
+
または-
で始まる値を割り当てると、値は現在の値に追加されたり現在の値から削除されたりします。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 | +---------+
詳細については、セクション5.9.4「DBUG パッケージ」を参照してください。
-
システム変数 debug_sync
スコープ セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 この変数は、Debug Sync 機能へのユーザーインタフェースです。 デバッグ同期を使用するには、MySQL が
-DENABLE_DEBUG_SYNC=1
CMake オプションで構成されている必要があります (セクション2.9.7「MySQL ソース構成オプション」 を参照)。 Debug Sync がコンパイルされていない場合、このシステム変数は使用できません。グローバル変数値は読み取り専用で、この機能が有効かどうかを示します。 デフォルトでは、Debug Sync は無効化されており、
debug_sync
の値はOFF
です。 サーバーが--debug-sync-timeout=
で開始した場合 (ここで、N
N
は 0 より大きいタイムアウト値)、Debug Sync は有効化され、debug_sync
の値はON - current signal
の後にシグナル名が続いたものになります。 また、N
は個々の同期点についてのデフォルトのタイムアウトになります。セッション値は任意のユーザーが読み取ることができ、グローバル変数と同じ値を持ちます。 セッション値は、同期ポイントを制御するように設定できます。
このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
Debug Sync 機能および同期点の使用方法についての説明は、「MySQL Internals: Test Synchronization」を参照してください。
-
コマンド行形式 --default-authentication-plugin=plugin_name
システム変数 default_authentication_plugin
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 caching_sha2_password
有効な値 mysql_native_password
sha256_password
caching_sha2_password
デフォルトの認証プラグイン 次の値を使用できます:
mysql_native_password
: MySQL ネイティブパスワードを使用します。セクション6.4.1.1「ネイティブプラガブル認証」 を参照してください。sha256_password
: SHA-256 パスワードを使用します。セクション6.4.1.3「SHA-256 プラガブル認証」 を参照してください。caching_sha2_password
: SHA-256 パスワードを使用します。セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。
注記MySQL 8.0 では、
caching_sha2_password
がmysql_native_password
ではなくデフォルトの認証プラグインです。 サーバー操作に対するこの変更の影響、およびサーバーとクライアントおよびコネクタとの互換性の詳細は、優先認証プラグインとしての caching_sha2_password を参照してください。default_authentication_plugin
の値は、サーバー操作の次の側面に影響します:認証プラグインを明示的に指定しない
CREATE USER
およびGRANT
ステートメントによって作成された新しいアカウントにサーバーが割り当てる認証プラグインを決定します。-
次のステートメントで作成されたアカウントの場合、サーバーはそのアカウントをデフォルトの認証プラグインに関連付け、そのプラグインの必要に応じてハッシュされた特定のパスワードをアカウントに割り当てます:
CREATE USER ... IDENTIFIED BY 'cleartext password';
-
システム変数 default_collation_for_utf8mb4
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 有効な値 utf8mb4_0900_ai_ci
utf8mb4_general_ci
レプリケーションによる内部使用用。 このシステム変数は、
utf8mb4
文字セットのデフォルトの照合順序に設定されます。 変数の値はソースからレプリカにレプリケートされるため、レプリカは、utf8mb4
のデフォルトの照合順序が異なるソースからのデータを正しく処理できます。 この変数は主に、MySQL 5.7 以前のレプリケーションソースサーバーから MySQL 8.0 複製サーバーへのレプリケーション、または MySQL 5.7 プライマリノードと 1 つ以上の MySQL 8.0 セカンダリノードを使用したグループレプリケーションをサポートすることを目的としています。 MySQL 5.7 のutf8mb4
のデフォルトの照合はutf8mb4_general_ci
ですが、MySQL 8.0 のutf8mb4_0900_ai_ci
です。 この変数は MySQL 8.0 より前のリリースには存在しないため、レプリカが変数の値を受信しない場合、ソースは以前のリリースのものとみなされ、値は以前のデフォルトの照合utf8mb4_general_ci
に設定されます。MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
デフォルトの
utf8mb4
照合は、次のステートメントで使用されます:SHOW COLLATION
およびSHOW CHARACTER SET
。COLLATION
句のないCHARACTER SET utf8mb4
句を持つCREATE TABLE
およびALTER TABLE
(テーブルの文字セットまたはカラムの文字セット用)。COLLATION
句のないCHARACTER SET utf8mb4
句を持つCREATE DATABASE
およびALTER DATABASE
。COLLATE
句のない_utf8mb4'
形式の文字列リテラルを含むステートメント。some text
'
-
コマンド行形式 --default-password-lifetime=#
システム変数 default_password_lifetime
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 65535
この変数は、グローバル自動パスワード有効期限ポリシーを定義します。 デフォルトの
default_password_lifetime
値は 0 で、パスワードの自動期限切れは無効になります。default_password_lifetime
の値が正の整数のN
の場合は、許可されているパスワードの存続期間を示します。パスワードはN
日ごとに変更する必要があります。グローバルパスワード有効期限ポリシーは、
CREATE USER
およびALTER USER
ステートメントのパスワード有効期限オプションを使用して、個々のアカウントに対して必要に応じてオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --default-storage-engine=name
システム変数 default_storage_engine
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 InnoDB
テーブルのデフォルトのストレージエンジン。 第16章「代替ストレージエンジン」を参照してください。 この変数は、永続テーブルのストレージエンジンのみを設定します。
TEMPORARY
テーブルについてストレージエンジンを設定するには、default_tmp_storage_engine
システム変数を設定します。使用可能かつ有効化できるストレージエンジンを表示するには、
SHOW ENGINES
ステートメントまたはクエリーINFORMATION_SCHEMA
ENGINES
テーブルを参照してください。サーバーの起動時にデフォルトのストレージエンジンを無効にする場合は、永続テーブルと
TEMPORARY
テーブルの両方のデフォルトエンジンを別のエンジンに設定する必要があります。そうしないと、サーバーは起動しません。 -
コマンド行形式 --default-table-encryption[={OFF|ON}]
導入 8.0.16 システム変数 default_table_encryption
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
ENCRYPTION
句を指定せずにスキーマおよび一般テーブルスペースを作成するときに適用されるデフォルトの暗号化設定を定義します。default_table_encryption
変数は、ユーザーが作成したスキーマおよび一般テーブルスペースにのみ適用できます。mysql
システムテーブルスペースの暗号化は制御されません。default_table_encryption
のランタイム値を設定するには、SYSTEM_VARIABLES_ADMIN
およびTABLE_ENCRYPTION_ADMIN
権限、または非推奨のSUPER
権限が必要です。default_table_encryption
は、SET PERSIST
およびSET PERSIST_ONLY
構文をサポートしています。 セクション5.1.9.3「永続化されるシステム変数」を参照してください。詳細は、スキーマおよび一般テーブルスペースの暗号化デフォルトの定義を参照してください。
-
コマンド行形式 --default-tmp-storage-engine=name
システム変数 default_tmp_storage_engine
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 列挙 デフォルト値 InnoDB
TEMPORARY
テーブルのデフォルトストレージエンジン (CREATE TEMPORARY TABLE
で作成されたもの)。 永続的なテーブルについてのストレージエンジンを設定するには、default_storage_engine
システム変数を設定します。 可能な値については、その変数の説明も参照してください。サーバーの起動時にデフォルトのストレージエンジンを無効にする場合は、永続テーブルと
TEMPORARY
テーブルの両方のデフォルトエンジンを別のエンジンに設定する必要があります。そうしないと、サーバーは起動しません。 -
コマンド行形式 --default-week-format=#
システム変数 default_week_format
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 7
WEEK()
関数について使用するデフォルトモード値。 セクション12.7「日付および時間関数」を参照してください。 -
コマンド行形式 --delay-key-write[={OFF|ON|ALL}]
システム変数 delay_key_write
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 ON
有効な値 ON
OFF
ALL
この変数は、遅延鍵書き込みの使用方法を指定します。 これは
MyISAM
テーブルにのみ適用されます。 鍵の書き込みが遅延すると、書き込み間で鍵バッファーがフラッシュされません。 セクション16.2.1「MyISAM 起動オプション」も参照してください。この変数には、
CREATE TABLE
ステートメントで使用できるDELAY_KEY_WRITE
テーブルオプションの処理に影響する次のいずれかの値を指定できます。オプション 説明 OFF
DELAY_KEY_WRITE
は無視されます。ON
MySQL は CREATE TABLE
ステートメントに指定されるDELAY_KEY_WRITE
オプションを優先します。 これはデフォルト値です。ALL
新しくオープンしたすべてのテーブルは、 DELAY_KEY_WRITE
オプションを有効にして作成された場合と同様に処理されます。注記この変数を
ALL
に設定した場合、MyISAM
テーブルの使用中に、このテーブルを別のプログラム内 (別の MySQL Server または myisamchk など) から使用しないでください。 これを行うと、インデックスが破損します。テーブルの
DELAY_KEY_WRITE
を有効にした場合、インデックス更新のたびにそのテーブルのキーバッファーがフラッシュされるのではなく、テーブルが閉じたときだけフラッシュされます。 これにより、キーの書込みが大幅に高速化されますが、この機能を使用する場合は、myisam_recover_options
システム変数を設定してサーバーを起動することで、すべてのMyISAM
テーブルの自動チェックを追加する必要があります (myisam_recover_options='BACKUP,FORCE'
など)。 セクション5.1.8「サーバーシステム変数」およびセクション16.2.1「MyISAM 起動オプション」を参照してください。--skip-new
を使用して mysqld を起動すると、delay_key_write
はOFF
に設定されます。警告--external-locking
で外部ロックを有効にした場合、キーの遅延書き込みを使用するテーブルについてのインデックス破損に対する保護はありません。 -
コマンド行形式 --delayed-insert-limit=#
非推奨 はい システム変数 delayed_insert_limit
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 100
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
このシステム変数は非推奨 (
DELAYED
挿入はサポートされていないため) であり、将来のリリースで削除される予定です。 -
コマンド行形式 --delayed-insert-timeout=#
非推奨 はい システム変数 delayed_insert_timeout
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 300
このシステム変数は非推奨 (
DELAYED
挿入はサポートされていないため) であり、将来のリリースで削除される予定です。 -
コマンド行形式 --delayed-queue-size=#
非推奨 はい システム変数 delayed_queue_size
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1000
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
このシステム変数は非推奨 (
DELAYED
挿入はサポートされていないため) であり、将来のリリースで削除される予定です。 -
コマンド行形式 --disabled-storage-engines=engine[,engine]...
システム変数 disabled_storage_engines
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 empty string
この変数は、テーブルまたはテーブルスペースの作成に使用できないストレージエンジンを示します。 たとえば、新しい
MyISAM
またはFEDERATED
テーブルが作成されないようにするには、サーバーオプションファイルで次の行を使用してサーバーを起動します:[mysqld] disabled_storage_engines="MyISAM,FEDERATED"
デフォルトでは、
disabled_storage_engines
は空ですが (エンジンは無効化されていません)、1 つ以上のエンジンのカンマ区切りリストに設定できます (大文字と小文字は区別されません)。 値に指定されたエンジンは、CREATE TABLE
またはCREATE TABLESPACE
を使用したテーブルまたはテーブルスペースの作成には使用できません。また、ALTER TABLE ... ENGINE
またはALTER TABLESPACE ... ENGINE
とともに使用して、既存のテーブルまたはテーブルスペースの記憶域エンジンを変更することもできません。 これを試行すると、ER_DISABLED_STORAGE_ENGINE
エラーが発生します。disabled_storage_engines
では、CREATE INDEX
,TRUNCATE TABLE
,ANALYZE TABLE
,DROP TABLE
やDROP TABLESPACE
などの既存のテーブルに対する他の DDL ステートメントは制限されません。 これにより、無効なエンジンを使用する既存のテーブルまたはテーブルスペースを、ALTER TABLE ... ENGINE
などの方法で許可されたエンジンに移行できるように、スムーズな遷移が可能になります。permitted_engine
default_storage_engine
またはdefault_tmp_storage_engine
システム変数を無効になっているストレージエンジンに設定できます。 これにより、アプリケーションは誤って動作または失敗する可能性がありますが、無効化されたエンジンを使用するアプリケーションを識別して変更できるように開発環境で有用な手法である可能性があります。これらのオプションのいずれかを使用してサーバーを起動した場合、
disabled_storage_engines
は無効になり、効果はありません:--initialize
,--initialize-insecure
,--skip-grant-tables
。注記disabled_storage_engines
を設定すると、mysql_upgrade で問題が発生する可能性があります。 詳細は、セクション4.4.5「mysql_upgrade — MySQL テーブルのチェックとアップグレード」を参照してください。 -
disconnect_on_expired_password
コマンド行形式 --disconnect-on-expired-password[={OFF|ON}]
システム変数 disconnect_on_expired_password
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
この変数は、期限切れのパスワードを持つクライアントをサーバーが処理する方法を制御します。
クライアントが期限切れのパスワードを処理できることを示している場合、
disconnect_on_expired_password
の値は関係ありません。 サーバーはクライアントが接続することを許可しますが、クライアントをサンドボックスモードに設定します。-
クライアントが期限切れのパスワードを処理できることを示していない場合、サーバーは
disconnect_on_expired_password
の値に従ってクライアントを処理します:disconnect_on_expired_password
: が有効な場合、サーバーはクライアントを切断します。disconnect_on_expired_password
: が無効な場合、サーバーはクライアントの接続を許可しますが、クライアントをサンドボックスモードに設定します。
期限切れパスワードに関するクライアントとサーバーの対話の設定の詳細については、セクション6.2.16「期限切れパスワードのサーバー処理」を参照してください。
-
コマンド行形式 --div-precision-increment=#
システム変数 div_precision_increment
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 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 | +----------------+
-
dragnet.log_error_filter_rules
コマンド行形式 --dragnet.log-error-filter-rules=value
システム変数 dragnet.log_error_filter_rules
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.
log_filter_dragnet
エラーログフィルタコンポーネントの操作を制御するフィルタルール。log_filter_dragnet
がインストールされていない場合、dragnet.log_error_filter_rules
は使用できません。log_filter_dragnet
がインストールされているが有効になっていない場合、dragnet.log_error_filter_rules
への変更は無効です。デフォルト値の効果は、
log_error_verbosity=2
の設定を使用してlog_sink_internal
フィルタによって実行されるフィルタリングに似ています。MySQL 8.0.12 の時点では、
dragnet.Status
ステータス変数を参照して、dragnet.log_error_filter_rules
への最新の割当ての結果を判断できます。MySQL 8.0.12 より前は、実行時に
dragnet.log_error_filter_rules
への割当てが成功すると、新しい値を確認するノートが生成されます:mysql> SET GLOBAL dragnet.log_error_filter_rules = 'IF prio <> 0 THEN unset prio.'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> SHOW WARNINGS\G *************************** 1. row *************************** Level: Note Code: 4569 Message: filter configuration accepted: SET @@GLOBAL.dragnet.log_error_filter_rules= 'IF prio!=ERROR THEN unset prio.';
SHOW WARNINGS
によって表示される値は、ルールセットが正常に解析されて内部形式にコンパイルされた後の 「decompiled」 正規表現を示します。 意味上、この正規の形式はdragnet.log_error_filter_rules
に割り当てられた値と同じですが、前述の例に示すように、割り当てられた値と正規の値にはいくつかの違いがある場合があります:<>
演算子が!=
に変更されます。数値の優先度 0 は、対応する優先度記号
ERROR
に変更されます。オプションのスペースが削除されます。
詳細については、セクション5.4.2.4「エラーログフィルタリングのタイプ」,およびセクション5.5.3「エラーログコンポーネント」を参照してください。
-
コマンド行形式 --end-markers-in-json[={OFF|ON}]
システム変数 end_markers_in_json
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
オプティマイザ JSON 出力がエンドマーカーを追加するかどうか。 「MySQL 内部: end_markers_in_json システム変数」を参照してください。
-
コマンド行形式 --eq-range-index-dive-limit=#
システム変数 eq_range_index_dive_limit
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 200
最小値 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 に設定します。詳細については、複数値比較の等価範囲の最適化を参照してください。
最適な推定を行うためにテーブルインデックス統計を更新するには、
ANALYZE TABLE
を使用します。 -
メッセージを生成した最後のステートメントから発生したエラーの数。 この変数は読み取り専用です。 セクション13.7.7.17「SHOW ERRORS ステートメント」を参照してください。
-
コマンド行形式 --event-scheduler[=value]
システム変数 event_scheduler
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 ON
有効な値 ON
OFF
DISABLED
この変数は、イベントスケジューラを有効または無効にし、起動または停止します。 使用可能なステータス値は、
ON
、OFF
およびDISABLED
で、デフォルトはOFF
です。 イベントスケジューラの有効化OFF
は、ステータスをDISABLED
に設定する必要があるイベントスケジューラを無効にすることと同じではありません。 この変数とそのイベントスケジューラ操作への影響の詳細は、セクション25.4.2「イベントスケジューラの構成」 を参照してください -
explicit_defaults_for_timestamp
コマンド行形式 --explicit-defaults-for-timestamp[={OFF|ON}]
非推奨 はい システム変数 explicit_defaults_for_timestamp
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
このシステム変数は、サーバーがデフォルト値に対して特定の非標準動作を有効にするかどうか、および
TIMESTAMP
カラムでNULL
値の処理を有効にするかどうかを決定します。 デフォルトでは、explicit_defaults_for_timestamp
は有効になっており、非標準動作は無効になっています。explicit_defaults_for_timestamp
を無効にすると、警告が表示されます。MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
explicit_defaults_for_timestamp
が無効になっている場合、サーバーは非標準動作を有効にし、次のようにTIMESTAMP
カラムを処理します:NULL
属性で明示的に宣言されていないTIMESTAMP
カラムは、NOT NULL
属性で自動的に宣言されます。 このようなカラムにNULL
の値を割り当てることができ、カラムを現在のタイムスタンプに設定します。 例外: MySQL 8.0.22 では、TIMESTAMP NOT NULL
として宣言された生成されたカラムにNULL
を挿入しようとすると、エラーで拒否されます。NULL
属性、明示的なDEFAULT
またはON UPDATE
属性で明示的に宣言されていない場合、テーブルの最初のTIMESTAMP
カラムはDEFAULT CURRENT_TIMESTAMP
およびON UPDATE CURRENT_TIMESTAMP
属性で自動的に宣言されます。-
最初のカラムに続く
TIMESTAMP
カラムは、NULL
属性または明示的なDEFAULT
属性で明示的に宣言されていない場合、DEFAULT '0000-00-00 00:00:00'
(「「ゼロ」」タイムスタンプ) として自動的に宣言されます。 そのようなカラムに対して明示的な値を指定しない挿入された行については、カラムに'0000-00-00 00:00:00'
が自動的に割り当てられて、警告は発生しません。厳密な SQL モードと
NO_ZERO_DATE
SQL モードのどちらが有効になっているかによって、デフォルト値の'0000-00-00 00:00:00'
が無効になる場合があります。TRADITIONAL
SQL モードには、厳密モードおよびNO_ZERO_DATE
が含まれることに注意してください。 セクション5.1.11「サーバー SQL モード」を参照してください。
前述の非標準の動作は非推奨です。将来の MySQL リリースで削除される予定です。
explicit_defaults_for_timestamp
が有効になっている場合、サーバーは非標準動作を無効にし、次のようにTIMESTAMP
カラムを処理します:TIMESTAMP
カラムにNULL
の値を割り当てて現在のタイムスタンプに設定することはできません。 現在のタイムスタンプを割り当てるには、カラムをCURRENT_TIMESTAMP
またはNOW()
などのシノニムに設定します。NOT NULL
属性で明示的に宣言されていないTIMESTAMP
カラムは、NULL
属性で自動的に宣言され、NULL
値を許可します。 このようなカラムにNULL
の値を割り当てると、現在のタイムスタンプではなくNULL
に設定されます。NOT NULL
属性で宣言されたTIMESTAMP
カラムでは、NULL
値は許可されません。 このようなカラムにNULL
を指定する挿入の場合、単一行挿入のエラー、厳密な SQL モードが有効になっている場合、または厳密な SQL モードが無効になっている複数行挿入の場合、'0000-00-00 00:00:00'
が挿入されます。 いずれの場合も、カラムにNULL
の値が割り当てられず、現在のタイムスタンプに設定されます。明示的な
DEFAULT
属性を使用せずにNOT NULL
属性で明示的に宣言されたTIMESTAMP
カラムは、デフォルト値を持たないものとして扱われます。 そのようなカラムについて明示的な値を指定しない挿入された行の場合、結果は SQL モードによって異なります。 厳密 SQL モードが有効である場合、エラーが発生します。 厳密な SQL モードが有効になっていない場合、カラムは暗黙的なデフォルトの'0000-00-00 00:00:00'
で宣言され、警告が発生します。 これは、MySQL がDATETIME
などのほかの時間型を処理する方法に類似しています。DEFAULT CURRENT_TIMESTAMP
またはON UPDATE CURRENT_TIMESTAMP
属性でTIMESTAMP
カラムが自動的に宣言されることはありません。 これらの属性は、明示的に指定する必要があります。テーブルの最初の
TIMESTAMP
カラムは、最初のカラムに続くTIMESTAMP
カラムとは異なる方法で処理されることはありません。
サーバーの起動時に
explicit_defaults_for_timestamp
が無効になっている場合、次の警告がエラーログに表示されます:[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
システム変数を有効にします。注記explicit_defaults_for_timestamp
自体は非推奨です。これは、将来の MySQL リリースで削除される非推奨のTIMESTAMP
動作の制御を許可することのみを目的としているためです。 これらの動作の削除が発生した場合は、explicit_defaults_for_timestamp
も削除されることを想定してください。追加情報については セクション11.2.5「TIMESTAMP および DATETIME の自動初期化および更新機能」を参照してください。
-
システム変数 external_user
スコープ セッション 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 クライアントを認証するために使用されるプラグインによって設定された、認証プロセス中に使用される外部ユーザー名。 ネイティブ (組み込み型) の MySQL 認証や、プラグインで値が設定されない場合、この変数は
NULL
です。 セクション6.2.18「プロキシユーザー」を参照してください。 -
コマンド行形式 --flush[={OFF|ON}]
システム変数 flush
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
ON
の場合、各 SQL ステートメントのあとでサーバーはすべての変更をデスクにフラッシュ (同期) します。 通常、MySQL では各 SQL ステートメントの終了後にのみすべての変更内容をディスクに書き込み、ディスクへの同期はオペレーティングシステムが処理します。 セクションB.3.3.3「MySQL が繰り返しクラッシュする場合の対処方法」を参照してください。--flush
オプションで mysqld を起動した場合、この変数はON
に設定されます。注記flush
が有効な場合、flush_time
の値は関係なく、flush_time
を変更してもフラッシュ動作には影響しません。 -
コマンド行形式 --flush-time=#
システム変数 flush_time
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
これがゼロ以外の値に設定されると、すべてのテーブルは
flush_time
秒ごとに閉じられて、リソースが解放され、フラッシュされていないデータがディスクへ同期されます。 このオプションは、リソースが非常に限定されたシステムでのみ使用することを推奨します。注記flush
が有効な場合、flush_time
の値は関係なく、flush_time
を変更してもフラッシュ動作には影響しません。 -
システム変数 foreign_key_checks
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 ON
1 (デフォルト) に設定すると、外部キー制約がチェックされます。 0 に設定すると、外部キー制約は無視されますが、いくつかの例外があります。 削除されたテーブルを再作成する場合、テーブル定義がテーブルを参照する外部キー制約に準拠していないと、エラーが返されます。 同様に、外部キー定義の形式が正しくない場合、
ALTER TABLE
操作はエラーを返します。 詳細は、セクション13.1.20.5「FOREIGN KEY の制約」を参照してください。この変数を設定すると、
NDB
テーブルにはInnoDB
テーブルと同じ効果があります。 一般的に、通常の操作中はこの設定を有効にしたままにすることで、参照整合性を強制します。 外部キーチェックを無効にすると、親/子関係に必要な順序とは異なる順序でInnoDB
テーブルをリロードする場合に役立ちます。 セクション13.1.20.5「FOREIGN KEY の制約」を参照してください。foreign_key_checks
を 0 に設定すると、データ定義ステートメントにも影響します。DROP SCHEMA
は、スキーマの外部のテーブルによって参照されている外部キーを持つテーブルをスキーマが含む場合であってもスキーマをドロップし、DROP TABLE
は、別のテーブルによって参照されている外部キーを持つテーブルをドロップします。注記foreign_key_checks
を 1 に設定すると、既存のテーブルデータのスキャンがトリガーされません。 したがって、foreign_key_checks = 0
の間にテーブルに追加された行の一貫性は検証されません。外部キー制約に必要なインデックスの削除は、
foreign_key_checks=0
でも許可されていません。 インデックスを削除する前に、外部キー制約を削除する必要があります。 -
コマンド行形式 --ft-boolean-syntax=name
システム変数 ft_boolean_syntax
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 + -><()~*:""&|
IN BOOLEAN MODE
を使用して実行されるブール全文検索によってサポートされる演算子のリスト。 セクション12.10.2「ブール全文検索」を参照してください。デフォルトの変数値は
'+ -><()~*:""&|'
です。 値を変更するルールは次のようになります。演算子の機能は、文字列内の位置によって決定されます。
置換する値は 14 文字である必要があります。
各文字は、英数字以外の ASCII 文字である必要があります。
1 番目または 2 番目の文字がスペースである必要があります。
位置 11 および 12 にある句を引用する演算子を除き、重複は許可されません。 これらの 2 つの文字は同じである必要はありませんが、同じであってもよいのはこれら 2 つだけです。
ポジション 10、13 および 14 (デフォルトでは
:
、&
および|
に設定されます) は、将来の拡張用に予約されています。
-
コマンド行形式 --ft-max-word-len=#
システム変数 ft_max_word_len
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer 最小値 10
MyISAM
FULLTEXT
インデックスに含めることができる最大の単語の長さ。注記この変数を変更したあと、
MyISAM
テーブルのFULLTEXT
インデックスを再構築する必要があります。REPAIR TABLE
を使用します。tbl_name
QUICK -
コマンド行形式 --ft-min-word-len=#
システム変数 ft_min_word_len
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 4
最小値 1
MyISAM
FULLTEXT
インデックスに含めることができる最小の単語の長さ。注記この変数を変更したあと、
MyISAM
テーブルのFULLTEXT
インデックスを再構築する必要があります。REPAIR TABLE
を使用します。tbl_name
QUICK -
コマンド行形式 --ft-query-expansion-limit=#
システム変数 ft_query_expansion_limit
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 20
最小値 0
最大値 1000
WITH QUERY EXPANSION
を使用して実行する全文検索で使用する最上位の一致の数。 -
コマンド行形式 --ft-stopword-file=file_name
システム変数 ft_stopword_file
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 MyISAM
テーブルの全文検索について、ストップワードのリストの読み取り元ファイル。 サーバーは、別のディレクトリを指定する絶対パス名が指定されないかぎり、データディレクトリ内のファイルを検索します。 ファイル内のすべての単語が使用され、コメントは受け付けされません。 デフォルトでは、ストップワードの組み込みリストが使用されます (storage/myisam/ft_static.c
ファイルに定義されています)。 この変数を空の文字列 (''
) に設定すると、ストップワードフィルタリングが無効になります。 セクション12.10.4「全文ストップワード」も参照してください。注記この変数またはストップワードファイルの内容を変更したあと、
MyISAM
テーブルのFULLTEXT
インデックスを再構築する必要があります。REPAIR TABLE
を使用します。tbl_name
QUICK -
コマンド行形式 --general-log[={OFF|ON}]
システム変数 general_log
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
一般クエリーログを有効にするかどうか。 値が 0 (または
OFF
) の場合はログを無効にし、1 (またはON
) の場合はログを有効にします。 ログ出力先はlog_output
システム変数によって制御され、この値をNONE
にした場合はログが有効になっていてもログエントリは書き込まれません。 -
コマンド行形式 --general-log-file=file_name
システム変数 general_log_file
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 host_name.log
一般クエリーログファイルの名前。 デフォルト値は
ですが、初期値はhost_name
.log--general_log_file
オプションを使用すると変更できます。 -
generated_random_password_length
コマンド行形式 --generated-random-password-length=#
導入 8.0.18 システム変数 generated_random_password_length
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 20
最小値 5
最大値 255
CREATE USER
、ALTER USER
およびSET PASSWORD
ステートメントに対して生成されるランダムパスワードで許可される最大文字数。 詳細は、ランダムパスワード生成を参照してください。 -
コマンド行形式 --group-concat-max-len=#
システム変数 group_concat_max_len
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 1024
最小値 4
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
GROUP_CONCAT()
関数について許可されるバイト単位の最大の結果の長さ。 デフォルトは 1024 です。 -
zlib
圧縮ライブラリがサーバーで利用できる場合はYES
、そうでない場合はNO
。 利用できない場合、COMPRESS()
およびUNCOMPRESS()
関数は使用できません。 -
mysqld がプラグインの動的ロードをサポートする場合は
YES
、そうでない場合はNO
。 値がNO
の場合、--plugin-load
などのオプションを使用してサーバー起動時にプラグインをロードしたり、INSTALL PLUGIN
ステートメントを使用して実行時にプラグインをロードしたりすることはできません。 -
サーバーが空間データ型をサポートする場合は
YES
、そうでない場合はNO
。 -
この変数は、
have_ssl
のシノニムです。 -
ステートメントプロファイリング機能が存在する場合は
YES
、そうでない場合はNO
。 存在する場合、この機能を有効または無効にするかがprofiling
システム変数によって制御されます。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。この変数は非推奨であり、将来の MySQL リリースで削除される予定です。
-
クエリーキャッシュは MySQL 8.0.3 で削除されました。
have_query_cache
は非推奨であり、常にNO
の値を持ち、将来の MySQL リリースで削除される予定です。 -
RTREE
インデックスを利用できる場合はYES
、そうでない場合はNO
。 (これらはMyISAM
テーブル内の空間インデックスで使用されます。) -
システム変数 have_ssl
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 有効な値 YES
(SSL サポートが使用可能)DISABLED
(SSL サポートはサーバーにコンパイルされましたが、有効にするために必要なオプションでサーバーが起動されませんでした)YES
(mysqld が SSL 接続をサポートしている場合)、DISABLED
(サーバーが SSL サポート付きでコンパイルされているが、適切な connection-encryption オプションで起動されていない場合)。 詳細は、セクション2.9.6「SSL ライブラリサポートの構成」を参照してください。 -
システム変数 have_statement_timeout
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean ステートメントの実行タイムアウト機能が使用可能かどうか (ステートメント実行時オプティマイザヒント を参照)。 この機能で使用されるバックグラウンドスレッドを初期化できなかった場合、値は
NO
になります。 -
シンボリックリンクサポートを有効化している場合は
YES
、そうでない場合はNO
。 これは、DATA DIRECTORY
およびINDEX DIRECTORY
テーブルオプションをサポートするために Unix で必要です。--skip-symbolic-links
オプションを指定してサーバーが開始された場合、この値はDISABLED
です。この変数は Windows では意味がありません。
注記シンボリックリンクのサポートは、それを制御する
--symbolic-links
オプションとともに非推奨になりました。これらは MySQL の将来のバージョンで削除される予定です。 また、このオプションはデフォルトで無効になっています。 関連するhave_symlink
システム変数も非推奨であり、将来のバージョンの MySQL で削除される予定です。 -
histogram_generation_max_mem_size
コマンド行形式 --histogram-generation-max-mem-size=#
システム変数 histogram_generation_max_mem_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 20000000
最小値 1000000
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ヒストグラム統計の生成に使用可能なメモリーの最大量。 セクション8.9.6「オプティマイザ統計」およびセクション13.7.3.1「ANALYZE TABLE ステートメント」を参照してください。
このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
コマンド行形式 --host-cache-size=#
システム変数 host_cache_size
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 -1
(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 0
最大値 65536
MySQL サーバーは、クライアントホスト名および IP アドレス情報を含むインメモリーホストキャッシュを保持し、ドメインネームシステム (DNS) のルックアップを回避するために使用されます。セクション5.1.12.3「DNS ルックアップとホストキャッシュ」 を参照してください。
host_cache_size
変数は、ホストキャッシュのサイズと、キャッシュの内容を公開するパフォーマンススキーマhost_cache
テーブルのサイズを制御します。host_cache_size
を設定すると、次の効果があります:サイズを 0 に設定すると、ホストキャッシュが無効になります。 キャッシュを無効にすると、サーバーはクライアントが接続するたびに DNS ルックアップを実行します。
実行時にサイズを変更すると、暗黙的なホストキャッシュフラッシュ操作が実行され、ホストキャッシュのクリア、
host_cache
テーブルの切捨ておよびブロックされたホストのブロック解除が行われます。
デフォルト値は 128 に自動サイズ設定され、500 までの
max_connections
の値には 1 が加算され、max_connections
値の 500 を超えるすべての増分には 1 が加算され、制限は 2000 に制限されます。--skip-host-cache
オプションの使用は、host_cache_size
システム変数を 0 に設定するのと似ていますが、host_cache_size
は、サーバーの起動時だけでなく、実行時にホストキャッシュのサイズ変更、有効化、および無効化にも使用できるため、より柔軟です。--skip-host-cache
を使用してサーバーを起動しても、host_cache_size
の値に対する実行時の変更は妨げられませんが、このような変更は効果がなく、host_cache_size
が 0 より大きい値に設定されていてもキャッシュは再度有効になりません。 -
システム変数 hostname
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 サーバーは起動時に、この変数をサーバーホスト名に設定します。 RFC 1034 によると、MySQL 8.0.17 での最大長は 255 文字で、その前は 60 文字です。
-
この変数は
last_insert_id
変数のシノニムです。 これはほかのデータベースシステムとの互換性のために存在します。 この値はSELECT @@identity
で読み取ることができ、SET identity
で設定できます。 -
コマンド行形式 --init-connect=name
システム変数 init_connect
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 接続する各クライアントに対してサーバーによって実行される文字列。 文字列は 1 つ以上の SQL ステートメントで構成され、セミコロン文字で区切られます。
CONNECTION_ADMIN
権限 (または非推奨のSUPER
権限) を持つユーザーの場合、init_connect
のコンテンツは実行されません。 これを行うのは、init_connect
の値が誤っていても、すべてのクライアントの接続を妨げないようにするためです。 たとえば、値に含まれているステートメントが構文エラーを含むため、クライアント接続が失敗することがあります。CONNECTION_ADMIN
またはSUPER
権限を持つユーザーに対してinit_connect
を実行しないと、接続をオープンしてinit_connect
値を修正できます。パスワードが期限切れのクライアントユーザーの場合、
init_connect
の実行はスキップされます。 これは、このようなユーザーは任意のステートメントを実行できないため、init_connect
の実行が失敗し、クライアントが接続できなくなるためです。init_connect
の実行をスキップすると、ユーザーは接続してパスワードを変更できます。サーバーは、
init_connect
の値のステートメントによって生成されたすべての結果セットを破棄します。 -
information_schema_stats_expiry
コマンド行形式 --information-schema-stats-expiry=#
システム変数 information_schema_stats_expiry
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 86400
最小値 0
最大値 31536000
一部の
INFORMATION_SCHEMA
テーブルには、テーブル統計を提供するカラムが含まれています:STATISTICS.CARDINALITY TABLES.AUTO_INCREMENT TABLES.AVG_ROW_LENGTH TABLES.CHECKSUM TABLES.CHECK_TIME TABLES.CREATE_TIME TABLES.DATA_FREE TABLES.DATA_LENGTH TABLES.INDEX_LENGTH TABLES.MAX_DATA_LENGTH TABLES.TABLE_ROWS TABLES.UPDATE_TIME
これらのカラムは、動的テーブルメタデータ、つまりテーブルの内容の変更に応じて変更される情報を表します。
デフォルトでは、MySQL は、カラムのクエリー時に
mysql.index_stats
およびmysql.table_stats
ディクショナリテーブルからこれらのカラムのキャッシュされた値を取得します。これは、ストレージエンジンから統計を直接取得するよりも効率的です。 キャッシュされた統計が使用できないか、期限切れになっている場合、MySQL はストレージエンジンから最新の統計を取得し、mysql.index_stats
およびmysql.table_stats
ディクショナリテーブルにキャッシュします。 後続のクエリーでは、キャッシュされた統計が期限切れになるまで、キャッシュされた統計が取得されます。information_schema_stats_expiry
セッション変数は、キャッシュされた統計が期限切れになるまでの期間を定義します。 デフォルトは 86400 秒 (24 時間) ですが、期間は 1 年まで延長できます。特定のテーブルのキャッシュされた値をいつでも更新するには、
ANALYZE TABLE
を使用します。常に最新の統計をストレージエンジンから直接取得し、キャッシュされた値をバイパスするには、
information_schema_stats_expiry
を0
に設定します。次の場合、統計カラムのクエリーでは、
mysql.index_stats
およびmysql.table_stats
ディクショナリテーブルの統計は格納または更新されません:キャッシュされた統計が失効していない場合。
information_schema_stats_expiry
が 0 に設定されている場合。サーバーが
read_only
,super_read_only
,transaction_read_only
またはinnodb_read_only
モードで起動されたとき。クエリーでパフォーマンススキーマデータもフェッチされる場合。
information_schema_stats_expiry
はセッション変数であり、各クライアントセッションで独自の有効期限値を定義できます。 ストレージエンジンから取得され、あるセッションによってキャッシュされた統計は、ほかのセッションで使用できます。関連情報については、セクション8.2.3「INFORMATION_SCHEMA クエリーの最適化」を参照してください。
-
コマンド行形式 --init-file=file_name
システム変数 init_file
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 指定した場合、この変数は、起動プロセス中に読み取られて実行される SQL ステートメントを含むファイルに名前を付けます。 MySQL 8.0.18 より前では、各ステートメントは単一行に記述する必要があり、コメントを含めることはできません。 MySQL 8.0.18 の時点では、ファイル内のステートメントの許容形式は、次の構成をサポートするように拡張されています:
delimiter ;
:ステートメントデリミタを;
文字に設定します。delimiter $$
:ステートメントデリミタを$$
文字シーケンスに設定します。現在のデリミタで区切られた、同じ行の複数のステートメント。
Multiple-line statements.
#
文字から行の末尾までのコメント。--
順序から行の末尾までのコメント。/*
順序から次の*/
順序への C 形式のコメント (複数行にわたるコメントを含む)。一重引用符 (
'
) または二重引用符 ("
) 文字で囲まれた複数行の文字列リテラル。
サーバーが
--initialize
または--initialize-insecure
オプションを使用して起動された場合、それはブートスタップモードで動作し、ファイルで許可されるステートメントを制限する一部の機能は使用できません。 これには、アカウント管理 (CREATE USER
、GRANT
など)、レプリケーションおよびグローバルトランザクション識別子に関連するステートメントが含まれます。 セクション17.1.3「グローバルトランザクション識別子を使用したレプリケーション」を参照してください。MySQL 8.0.17 では、サーバーの起動時に作成されたスレッドは、データディクショナリの作成、アップグレード手順の実行、システムテーブルの作成などのタスクに使用されます。 安定した予測可能な環境を確保するために、これらのスレッドは、
sql_mode
,character_set_server
,collation_server
,completion_type
,explicit_defaults_for_timestamp
やdefault_table_encryption
などの一部のシステム変数のサーバー組込みデフォルトを使用して実行されます。これらのスレッドは、サーバーの起動時に
init_file
で指定されたファイル内のステートメントを実行するためにも使用されるため、このようなステートメントは、これらのシステム変数のサーバーに組み込まれたデフォルト値で実行されます。 -
innodb_
xxx
InnoDB
システム変数は、セクション15.14「InnoDB の起動オプションおよびシステム変数」にリストされています。 これらの変数は、InnoDB
テーブルの記憶域、メモリー使用および I/O パターンの多くの側面を制御し、InnoDB
がデフォルトの記憶域エンジンであることが特に重要です。 -
AUTO_INCREMENT
値を挿入するときに、後に続くINSERT
またはALTER TABLE
ステートメントによって使用される値。 これは主にバイナリログと一緒に使用されます。 -
コマンド行形式 --interactive-timeout=#
システム変数 interactive_timeout
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 28800
最小値 1
サーバーが対話型の接続で、対話型の接続を閉じる前にアクティビティーを待機する秒数。 対話型クライアントは、
mysql_real_connect()
でCLIENT_INTERACTIVE
オプションを使用するクライアントと定義されます。wait_timeout
も参照してください。 -
internal_tmp_disk_storage_engine
コマンド行形式 --internal-tmp-disk-storage-engine=#
削除 8.0.16 システム変数 internal_tmp_disk_storage_engine
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 INNODB
有効な値 MYISAM
INNODB
重要MySQL 8.0.16 以降では、ディスク上の内部一時テーブルは常に
InnoDB
ストレージエンジンを使用します。MySQL 8.0.16 の時点で、この変数は削除されているため、サポートされなくなりました。MySQL 8.0.16 より前は、この変数によって、ディスク上の内部一時テーブルに使用されるストレージエンジンが決まります (オンディスク内部一時テーブルのストレージエンジン を参照)。 許可される値は、
MYISAM
およびINNODB
(デフォルト) です。 -
internal_tmp_mem_storage_engine
コマンド行形式 --internal-tmp-mem-storage-engine=#
システム変数 internal_tmp_mem_storage_engine
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 列挙 デフォルト値 TempTable
有効な値 TempTable
MEMORY
インメモリー内部一時テーブルのストレージエンジン (セクション8.4.4「MySQL での内部一時テーブルの使用」 を参照)。 許可される値は、
TempTable
(デフォルト) およびMEMORY
です。optimizer は、インメモリー内部一時テーブル用に
internal_tmp_mem_storage_engine
によって定義されたストレージエンジンを使用します。 -
コマンド行形式 --join-buffer-size=#
システム変数 join_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 262144
最小値 128
最大値 (Windows) 4294967295
最大値 (その他, 64 ビットプラットフォーム) 18446744073709547520
最大値 (その他, 32 ビットプラットフォーム) 4294967295
単純インデックススキャン、範囲インデックススキャン、およびインデックスを使用しないため完全テーブルスキャンを実行する結合について、使用されるバッファーの最小サイズ。 通常の場合、高速な結合を得るための最適な方法は、インデックスを追加することです。 インデックスを追加できない場合、より高速な完全結合を得るために、
join_buffer_size
の値を大きくします。 2 つのテーブル間の完全結合 1 つに対して 1 つの結合バッファーが割り当てられます。 インデックスが使用されない複数テーブル間の複雑な結合については、複数の結合バッファーが必要になることもあります。ブロックネストループアルゴリズムまたはバッチキーアクセスアルゴリズムを使用しないかぎり、一致する各行を保持するために必要な大きさを超えるバッファを設定することはできず、すべての結合で少なくとも最小サイズが割り当てられるため、この変数をグローバルに大きな値に設定する際は注意が必要です。 グローバル設定を小さく保ち、大きな結合を実行しているセッションでのみセッション設定を大きな値に変更するか、
SET_VAR
オプティマイザヒントを使用してクエリーごとに設定を変更することをお薦めします (セクション8.9.3「オプティマイザヒント」 を参照)。 メモリーを使用するほとんどのクエリーによって必要なサイズよりもグローバルサイズを大きくすると、メモリー割り当て時間が原因でパフォーマンスが著しく低下することがあります。Block Nested-Loop を使用すると、最初のテーブルのすべての行から必要なすべてのカラムが結合バッファに格納される時点まで、大きな結合バッファが有効になります。 これはクエリーによって異なります。最適なサイズは、最初のテーブルのすべての行を保持するよりも小さくなる場合があります。
バッチ化されたキーアクセスを使用する場合、
join_buffer_size
の値によって、ストレージエンジンへのリクエストごとにキーのバッチの大きさが定義されます。 バッファが大きいほど、結合操作の右側のテーブルへの順次アクセスが多くなり、パフォーマンスが大幅に向上する可能性があります。デフォルトは 256KB です。
join_buffer_size
で許可される最大の設定値は 4G バイト −1 です。 64 ビットプラットフォームの場合は大きい値が許可されます (64 ビットの Windows の場合は例外で、大きい値は 4G バイト − 1 に切り捨てられて警告が出ます)。結合バッファリングについての追加情報は、セクション8.2.1.7「Nested Loop 結合アルゴリズム」を参照してください。 バッチキーアクセスについては、セクション8.2.1.12「Block Nested Loop 結合と Batched Key Access 結合」を参照してください。
-
コマンド行形式 --keep-files-on-create[={OFF|ON}]
システム変数 keep_files_on_create
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 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
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 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.5.1「INSERT ステートメントの最適化」を参照してください。キーバッファーのパフォーマンスを確認するために、
SHOW STATUS
ステートメントを発行し、Key_read_requests
、Key_reads
、Key_write_requests
、およびKey_writes
のステータス変数を調べることができます。 (セクション13.7.7「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.10.2「MyISAM キーキャッシュ」を参照してください。 -
コマンド行形式 --key-cache-age-threshold=#
システム変数 key_cache_age_threshold
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 300
最小値 100
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
この値は、キーキャッシュのホットサブリストからウォームサブリストへのバッファーの格下げを制御します。 値が低いと格下げが早く行われます。 最小値は 100 です。 デフォルト値は 300 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。
-
コマンド行形式 --key-cache-block-size=#
システム変数 key_cache_block_size
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1024
最小値 512
最大値 16384
キーキャッシュ内のバイト単位のブロックのサイズ。 デフォルト値は 1024 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。
-
コマンド行形式 --key-cache-division-limit=#
システム変数 key_cache_division_limit
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 100
最小値 1
最大値 100
キーキャッシュバッファーリストのホットサブリストとウォームサブリストの間の分割点。 値は、ウォームサブリスト用に使用するバッファーリストのパーセントです。 許可される値の範囲は 1 から 100 です。 デフォルト値は 100 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。
-
システム変数 large_files_support
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean 大きなファイルをサポートするオプションで mysqld をコンパイルしているかどうか。
-
コマンド行形式 --large-pages[={OFF|ON}]
システム変数 large_pages
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ プラットフォーム固有 Linux 型 Boolean デフォルト値 OFF
大規模ページサポートが (
--large-pages
オプションで) 有効になっているかどうか。 セクション8.12.3.2「ラージページのサポートの有効化」を参照してください。 -
システム変数 large_page_size
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
大規模ページサポートが有効化されている場合、これはメモリーページのサイズを示します。 ラージメモリーページは Linux でのみサポートされます。他のプラットフォームでは、この変数の値は常に 0 です。 セクション8.12.3.2「ラージページのサポートの有効化」を参照してください。
-
LAST_INSERT_ID()
から返される値。 これは、テーブルを更新するステートメント内でLAST_INSERT_ID()
を使用するときにバイナリログ内に格納されます。 この変数を設定しても、mysql_insert_id()
C API 関数によって返される値は更新されません。 -
コマンド行形式 --lc-messages=name
システム変数 lc_messages
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 en_US
エラーメッセージに使用するロケール。 デフォルトは
en_US
です。 サーバーは引数を言語名に変換し、これをlc_messages_dir
の値と組み合わせてエラーメッセージファイルの場所を生成します。 セクション10.12「エラーメッセージ言語の設定」を参照してください。 -
コマンド行形式 --lc-messages-dir=dir_name
システム変数 lc_messages_dir
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 エラーメッセージが配置されているディレクトリ。 サーバーはこの値を
lc_messages
の値と一緒に使用して、エラーメッセージファイルの場所を生成します。 セクション10.12「エラーメッセージ言語の設定」を参照してください。 -
コマンド行形式 --lc-time-names=value
システム変数 lc_time_names
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 この変数は、日および月の名前と略語を表示するために使用する言語を制御するロケールを指定します。 この変数は
DATE_FORMAT()
、DAYNAME()
、およびMONTHNAME()
関数の出力に影響を与えます。 ロケール名は、'ja_JP'
や'pt_BR'
などの POSIX 規格の値です。 システムのロケール設定に関係なく、デフォルト値は'en_US'
です。 詳細については、セクション10.16「MySQL Server のロケールサポート」を参照してください。 -
システム変数 license
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 GPL
サーバーが持つライセンスのタイプ。
-
コマンド行形式 --local-infile[={OFF|ON}]
システム変数 local_infile
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、
LOAD DATA
ステートメントのサーバー側LOCAL
機能を制御します。local_infile
の設定に応じて、サーバーはクライアント側でLOCAL
が有効になっているクライアントによるローカルデータロードを拒否または許可します。サーバーが
LOAD DATA LOCAL
ステートメントを明示的に拒否または許可するようにするには (構築時または実行時にクライアントプログラムおよびライブラリがどのように構成されているかに関係なく)、それぞれlocal_infile
を無効または有効にして mysqld を起動します。local_infile
は実行時に設定することもできます。 詳細は、セクション6.1.6「LOAD DATA LOCAL のセキュリティー上の考慮事項」を参照してください。 -
コマンド行形式 --lock-wait-timeout=#
システム変数 lock_wait_timeout
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 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
では、LOCK INSTANCE FOR BACKUP
ステートメントがロックを放棄するまで待機する時間も定義されます。 -
システム変数 locked_in_memory
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ mysqld が
--memlock
によってメモリー内でロックされたかどうか。 -
コマンド行形式 --log-error[=file_name]
システム変数 log_error
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルトのエラーログの保存先。 宛先がコンソールの場合、値は
stderr
です。 それ以外の場合、宛先はファイルで、log_error
値はファイル名です。 セクション5.4.2「エラーログ」 を参照してください。 -
コマンド行形式 --log-error-services=value
システム変数 log_error_services
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 log_filter_internal; log_sink_internal
エラーロギングを有効にするコンポーネント。 変数には、0、1 または多数の要素を含むリストを含めることができます。 後者の場合、要素はセミコロンまたは (MySQL 8.0.12 の時点で) カンマで区切り、オプションでスペースを続けることができます。 指定された設定にセミコロンとカンマの両方のセパレータを使用することはできません。 サーバーはリストされた順序でコンポーネントを実行するため、コンポーネントの順序は重要です。
log_error_services
値に指定されたロード可能な (組込みではない) コンポーネントは、最初にINSTALL COMPONENT
とともにインストールする必要があります。 詳細は、セクション5.4.2.1「エラーログ構成」を参照してください。 -
コマンド行形式 --log-error-suppression-list=value
導入 8.0.13 システム変数 log_error_suppression_list
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 empty string
log_error_suppression_list
システム変数は、エラーログを対象としたイベントに適用され、WARNING
またはINFORMATION
の優先度で発生した場合に抑制するイベントを指定します。 たとえば、特定のタイプの警告が頻繁に発生するが関心がないためにエラーログで望ましくない「「ノイズ」」とみなされる場合は、抑止できます。 この変数は、デフォルトで有効になっているlog_filter_internal
エラーログフィルタコンポーネントによって実行されるフィルタリングに影響します (セクション5.5.3「エラーログコンポーネント」 を参照)。log_filter_internal
が無効になっている場合、log_error_suppression_list
は影響を与えません。log_error_suppression_list
値には、抑制しない場合は空の文字列、抑制するエラーコードを示すカンマ区切り値のリストを指定できます。 エラーコードはシンボリックまたは数値形式で指定できます。 数値コードは、MY-
接頭辞の有無にかかわらず指定できます。 数値部分の先頭のゼロは重要ではありません。 許可されているコード形式の例:ER_SERVER_SHUTDOWN_COMPLETE MY-000031 000031 MY-31 31
読みやすく移植性を高めるために、数値よりもシンボリック値をお薦めします。 許可されるエラー記号およびエラー番号の詳細は、MySQL 8.0 Error Message Reference を参照してください。
log_error_suppression_list
の効果は、log_error_verbosity
の効果と結合されます。 追加情報については セクション5.4.2.5「優先度ベースのエラーログのフィルタリング (log_filter_internal)」を参照してください。 -
コマンド行形式 --log-error-verbosity=#
システム変数 log_error_verbosity
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 2
最小値 1
最大値 3
log_error_verbosity
システム変数は、エラーログを対象としたイベントを処理するための冗長性を指定します。 この変数は、デフォルトで有効になっているlog_filter_internal
エラーログフィルタコンポーネントによって実行されるフィルタリングに影響します (セクション5.5.3「エラーログコンポーネント」 を参照)。log_filter_internal
が無効になっている場合、log_error_verbosity
は影響を与えません。エラーログを対象としたイベントの優先度は、
ERROR
、WARNING
またはINFORMATION
です。log_error_verbosity
は、次のテーブルに示すように、ログに書き込まれるメッセージに対して許可する優先度に基づいて冗長性を制御します。log_error_verbosity 値 許可されたメッセージの優先度 1 ERROR
2 ERROR
,WARNING
3 ERROR
,WARNING
,INFORMATION
SYSTEM
の優先度もあります。log_error_verbosity
の値に関係なく、エラー以外の状況に関するシステムメッセージがエラーログに出力されます。 これらのメッセージには、起動メッセージと停止メッセージ、および設定に対する重要な変更が含まれます。log_error_verbosity
の効果は、log_error_suppression_list
の効果と結合されます。 追加情報については セクション5.4.2.5「優先度ベースのエラーログのフィルタリング (log_filter_internal)」を参照してください。 -
コマンド行形式 --log-output=name
システム変数 log_output
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Set デフォルト値 FILE
有効な値 TABLE
FILE
NONE
一般クエリーログおよびスロークエリーログ出力の宛先。 値は、
TABLE
、FILE
およびNONE
から選択されたカンマ区切りの単語のリストです。TABLE
は、mysql
システムスキーマ内のgeneral_log
およびslow_log
テーブルへのロギングを選択します。FILE
は、ログファイルへのロギングを選択します。NONE
はロギングを無効にします。 値にNONE
が存在する場合は、存在する他の単語よりも優先されます。TABLE
とFILE
の両方を指定して、両方のログ出力先を選択できます。この変数は、ログ出力先を選択しますが、ログ出力は有効にしません。 これを行うには、
general_log
およびslow_query_log
システム変数を有効にします。FILE
ロギングの場合、general_log_file
およびslow_query_log_file
システム変数によってログファイルの場所が決まります。 詳細については、セクション5.4.1「一般クエリーログおよびスロークエリーログの出力先の選択」を参照してください。 -
コマンド行形式 --log-queries-not-using-indexes[={OFF|ON}]
システム変数 log_queries_not_using_indexes
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
スロークエリーログを有効にしてこの変数を有効にすると、すべての行を取得すると予想されるクエリーがログに記録されます。 セクション5.4.5「スロークエリーログ」を参照してください。 このオプションは、インデックスが使用されないことを必ずしも意味するわけではありません。 たとえば、フルインデックススキャンを使用するクエリーはインデックスを使用しますが、インデックスは行数を制限しないため、クエリーはログに記録されます。
-
コマンド行形式 --log-raw[={OFF|ON}]
システム変数 (≥ 8.0.19) log_raw
スコープ (≥ 8.0.19) グローバル 動的 (≥ 8.0.19) はい SET_VAR
ヒントの適用 (≥ 8.0.19)いいえ 型 Boolean デフォルト値 OFF
log_raw
システム変数は、最初は--log-raw
オプションの値に設定されます。 詳細は、そのオプションの説明を参照してください。 システム変数を実行時に設定して、パスワードマスキング動作を変更することもできます。 -
コマンド行形式 --log-slow-admin-statements[={OFF|ON}]
システム変数 log_slow_admin_statements
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
スロークエリーログに書き込まれるステートメントにスロー管理ステートメントを含めます。 管理ステートメントには、
ALTER TABLE
、ANALYZE TABLE
、CHECK TABLE
、CREATE INDEX
、DROP INDEX
、OPTIMIZE TABLE
、およびREPAIR TABLE
が含まれます。 -
コマンド行形式 --log-slow-extra[={OFF|ON}]
導入 8.0.14 システム変数 log_slow_extra
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
スロークエリーログが有効で、出力先に
FILE
が含まれている場合、サーバーはスローステートメントに関する情報を提供する追加のフィールドをログファイル行に書き込みます。 セクション5.4.5「スロークエリーログ」を参照してください。TABLE
出力は影響を受けません。 -
コマンド行形式 --log-syslog[={OFF|ON}]
非推奨 はい (removed in 8.0.13) システム変数 log_syslog
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
(システムログへのエラーロギングが有効な場合)MySQL 8.0 より前では、この変数はシステムログ (Windows の場合はイベントログ、Unix および Unix に似たシステムの場合は
syslog
) にエラーロギングを実行するかどうかを制御していました。MySQL 8.0 では、
log_sink_syseventlog
ログコンポーネントによってシステムログへのエラーロギングが実装されるため (セクション5.4.2.8「システムログへのエラーロギング」 を参照)、log_error_services
システム変数にこのタイプのロギングを追加することで有効にできます。log_syslog
が削除されます。 (MySQL 8.0.13 より前は、log_syslog
は存在していましたが、非推奨であり、効果はありません。) -
コマンド行形式 --log-syslog-facility=value
削除 8.0.13 システム変数 log_syslog_facility
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 daemon
この変数は MySQL 8.0.13 で削除され、
syseventlog.facility
に置き換えられました。 -
コマンド行形式 --log-syslog-include-pid[={OFF|ON}]
削除 8.0.13 システム変数 log_syslog_include_pid
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
この変数は MySQL 8.0.13 で削除され、
syseventlog.include_pid
に置き換えられました。 -
コマンド行形式 --log-syslog-tag=tag
削除 8.0.13 システム変数 log_syslog_tag
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 empty string
この変数は MySQL 8.0.13 で削除され、
syseventlog.tag
に置き換えられました。 -
コマンド行形式 --log-timestamps=#
システム変数 log_timestamps
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 UTC
有効な値 UTC
SYSTEM
この変数は、エラーログに書き込まれるメッセージのタイムスタンプ、およびファイルに書き込まれる一般的なクエリーログメッセージとスロークエリーログメッセージのタイムゾーンを制御します。 一般クエリーログおよびテーブル (
mysql.general_log
、mysql.slow_log
) に書き込まれるスロークエリーログメッセージのタイムゾーンには影響しません。 これらのテーブルから取得された行は、CONVERT_TZ()
を使用するか、セッションのtime_zone
システム変数を設定することで、ローカルシステムのタイムゾーンから任意のタイムゾーンに変換できます。許可される
log_timestamps
値は、UTC
(デフォルト) およびSYSTEM
(ローカルシステムのタイムゾーン) です。タイムスタンプは ISO 8601 / RFC 3339 形式を使用して書き込まれます:
に Zulu 時間 (UTC) またはYYYY-MM-DD
Thh:mm:ss.uuuuuu
±hh:mm
(UTC からのオフセット) を示すZ
の末尾の値を加えたもの。 -
log_throttle_queries_not_using_indexes
コマンド行形式 --log-throttle-queries-not-using-indexes=#
システム変数 log_throttle_queries_not_using_indexes
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
log_queries_not_using_indexes
が有効な場合、log_throttle_queries_not_using_indexes
変数は、スロークエリーログに書き込み可能な分あたりのクエリー数を制限します。 値 0 (デフォルト) は「制限なし」を意味します。 詳細は、セクション5.4.5「スロークエリーログ」を参照してください。 -
コマンド行形式 --long-query-time=#
システム変数 long_query_time
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 数値 デフォルト値 10
最小値 0
クエリーの時間がこの秒数よりかかると、サーバーは
Slow_queries
ステータス変数を増やします。 スロークエリーログが有効な場合、クエリーはスロークエリーログファイルに記録されます。 この値は CPU 時間でなくリアルタイムで測定されるため、負荷の軽いシステムでしきい値を下回るクエリーが、負荷の重いシステムではしきい値を超える場合もあります。long_query_time
の最小値およびデフォルト値は、それぞれ 0 および 10 です。 値はマイクロ秒の精度まで指定できます。 セクション5.4.5「スロークエリーログ」を参照してください。この変数の値を小さくすると、長時間実行とみなされるステートメントが増えるため、スロークエリーログに必要な領域が増えます。 非常に小さい値 (1 秒未満) の場合、ログは非常に大きくなることがあります。 長時間実行とみなされるステートメントの数を増やすと、特にグループレプリケーションが有効になっている場合に、MySQL Enterprise Monitor の「「長時間実行プロセスの数が多すぎます」」アラートに対して誤検出が発生する可能性もあります。 これらの理由から、非常に小さい値はテスト環境でのみ使用するか、本番環境では短期間のみ使用する必要があります。
-
コマンド行形式 --low-priority-updates[={OFF|ON}]
システム変数 low_priority_updates
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
1
に設定された場合、すべてのINSERT
、UPDATE
、DELETE
、およびLOCK TABLE WRITE
ステートメントは、影響を受けるテーブルでの保留中のSELECT
またはLOCK TABLE READ
がなくなるまで待機します。{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ...
を使用して同じ効果を得て、クエリーの優先度を下げることができます。 この変数は、テーブルレベルのロック (MyISAM
、MEMORY
、MERGE
など) のみを使用するストレージエンジンにのみ影響します。 セクション8.11.2「テーブルロックの問題」を参照してください。 -
システム変数 lower_case_file_system
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean この変数は、データディレクトリが配置されているファイルシステムでのファイル名の大文字小文字の区別を示します。
OFF
では、ファイル名は大/小文字が区別され、ON
では大/小文字が区別されません。 この変数は、ファイルシステム属性を反映するため読み取り専用で、変数を設定してもファイルシステムに影響しません。 -
コマンド行形式 --lower-case-table-names[=#]
システム変数 lower_case_table_names
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 2
0 に設定すると、テーブル名は指定したとおりに格納され、比較では大/小文字が区別されます。 1 に設定すると、テーブル名はディスクに小文字で格納され、比較では大文字と小文字は区別されません。 2 に設定されると、テーブル名は指定したとおりに格納されますが、小文字で比較されます。 このオプションはデータベース名やテーブルエイリアスにも適用されます。 追加の詳細については、セクション9.2.3「識別子の大文字と小文字の区別」を参照してください。
Windows では、デフォルト値は 1 です。 macOS では、デフォルト値は 2 です。 Linux では、値 2 はサポートされていません。かわりに、サーバーは値を強制的に 0 にします。
データディレクトリが大/小文字を区別しないファイルシステム (Windows や macOS など) に存在するシステムで MySQL を実行している場合は、
lower_case_table_names
を 0 に設定しないでください。 これはサポートされていない組合せであり、間違ったtbl_name
文字ケースでINSERT INTO ... SELECT ... FROM
操作を実行するとハング状態になる可能性があります。tbl_name
MyISAM
では、異なる大文字と小文字を使用してテーブル名にアクセスすると、インデックスが破損する可能性があります。大/小文字を区別しないファイルシステムで
--lower_case_table_names=0
を使用してサーバーを起動しようとすると、エラーメッセージが出力され、サーバーが終了します。InnoDB
テーブルを使用する場合、名前を強制的に小文字に変換するために、すべてのプラットフォームでこの値を 1 に設定します。この変数の設定は、大文字と小文字の区別に関してレプリケーションフィルタリングオプションの動作に影響します。 詳細は、セクション17.2.5「サーバーがレプリケーションフィルタリングルールをどのように評価するか」を参照してください。
サーバーの初期化時に使用された設定とは異なる
lower_case_table_names
設定でサーバーを起動することは禁止されています。 様々なデータディクショナリテーブルのフィールドで使用される照合は、サーバーの初期化時に定義された設定によって決定され、異なる設定でサーバーを再起動すると、識別子の順序付けおよび比較方法に矛盾が生じるため、制限が必要です。したがって、サーバーを初期化する前に、
lower_case_table_names
を目的の設定に構成する必要があります。 ほとんどの場合、MySQL サーバーを初めて起動する前に、MySQL オプションファイルでlower_case_table_names
を構成する必要があります。 ただし、Debian および Ubuntu での APT インストールの場合、サーバーは初期化され、事前にオプションファイルで設定を構成する機会はありません。 そのため、lower_case_table_names
を有効にするには、APT を使用して MySQL をインストールする前にdebconf-set-selection
ユーティリティを使用する必要があります。 これを行うには、APT を使用して MySQL をインストールする前に、次のコマンドを実行します:shell> sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled
注記debconf-set-selections
を使用してlower_case_table_names
を有効にする機能が MySQL 8.0.17 に追加されました。lower_case_table_names
を有効にすると、値は 1 に設定されます。 -
コマンド行形式 --mandatory-roles=value
システム変数 mandatory_roles
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 empty string
サーバーが必須として扱う必要があるロール。 実際には、これらのロールはすべてのユーザーに自動的に付与されますが、
mandatory_roles
を設定しても実際にはユーザーアカウントは変更されず、付与されたロールはmysql.role_edges
システムテーブルに表示されません。変数値は、ロール名のカンマ区切りリストです。 例:
SET PERSIST mandatory_roles = '`role1`@`%`,`role2`,role3,role4@localhost';
mandatory_roles
のランタイム値を設定するには、グローバルシステム変数のランタイム値を設定するために通常必要なSYSTEM_VARIABLES_ADMIN
権限 (または非推奨のSUPER
権限) に加えて、ROLE_ADMIN
権限が必要です。ロール名は、
形式のユーザー部分とホスト部分で構成されます。 ホスト部分を省略すると、デフォルトでuser_name
@host_name
%
に設定されます。 追加情報については セクション6.2.5「ロール名の指定」を参照してください。mandatory_roles
値は文字列であるため、引用符で囲まれている場合は、引用符で囲まれた文字列内での引用に許可された方法でユーザー名とホスト名を記述する必要があります。mandatory_roles
の値で指定されたロールは、REVOKE
で取り消すことも、DROP ROLE
またはDROP USER
で削除することもできません。セッションがデフォルトでシステムセッションにならないようにするには、
SYSTEM_USER
権限を持つロールをmandatory_roles
システム変数の値にリストできません:SYSTEM_USER
権限を持つロールが起動時にmandatory_roles
に割り当てられた場合、サーバーはエラーログにメッセージを書き込み、終了します。SYSTEM_USER
権限を持つロールが実行時にmandatory_roles
に割り当てられた場合、エラーが発生し、mandatory_roles
値は変更されません。
明示的に付与されたロールと同様に、必須ロールはアクティブ化されるまで有効になりません (ロールのアクティブ化 を参照)。 ログイン時に、
activate_all_roles_on_login
システム変数が有効になっている場合は付与されているすべてのロールに対してロールのアクティブ化が行われ、それ以外の場合はデフォルトロールとして設定されているロールに対してロールのアクティブ化が行われます。 実行時に、SET ROLE
によってロールがアクティブ化されます。mandatory_roles
に割り当てられたときに存在しないが、後で作成されるロールでは、特別な処理を必須とみなす必要がある場合があります。 詳細は、必須ロールの定義を参照してください。SHOW GRANTS
では、セクション13.7.7.21「SHOW GRANTS ステートメント」 で説明されているルールに従って必須ロールが表示されます。 -
コマンド行形式 --max-allowed-packet=#
システム変数 max_allowed_packet
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 67108864
最小値 1024
最大値 1073741824
1 つのパケット、生成された文字列または中間文字列、または
mysql_stmt_send_long_data()
C API 関数によって送信されたすべてのパラメータの最大サイズ。 デフォルトは 64M バイトです。パケットメッセージバッファーは
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_allowed_packet
値を超えるバイト数をクライアントに送信しません。 (クライアントの接続後にグローバル値が変更された場合、グローバル値はセッション値より小さくなる可能性があります。) -
コマンド行形式 --max-connect-errors=#
システム変数 max_connect_errors
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 100
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
正常に接続されずにホストからの
max_connect_errors
の連続した接続リクエストが中断されると、サーバーはそのホストをそれ以降の接続からブロックします。 前回の接続が中断された後、max_connect_errors
の試行回数より少ない時間内にホストからの接続が正常に確立された場合、ホストのエラー数はゼロにクリアされます。 ブロックされたホストのブロックを解除するには、ホストキャッシュをフラッシュします。ホストキャッシュのフラッシュ を参照してください。 -
コマンド行形式 --max-connections=#
システム変数 max_connections
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 151
最小値 1
最大値 100000
許可される最大のクライアントの同時接続数。 詳細は、セクション5.1.12.1「接続インタフェース」を参照してください。
-
コマンド行形式 --max-delayed-threads=#
非推奨 はい システム変数 max_delayed_threads
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 20
最小値 0
最大値 16384
このシステム変数は非推奨です (
DELAYED
の挿入はサポートされていないため)。将来のリリースで削除される予定です。 -
コマンド行形式 --max-digest-length=#
システム変数 max_digest_length
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1024
最小値 0
最大値 1048576
正規化されたステートメントダイジェストの計算用にセッションごとに予約されているメモリーの最大バイト数。 ダイジェスト計算中にその量の領域が使用されると、切捨てが発生: 解析されたステートメントからのそれ以上のトークンは収集されず、ダイジェスト値になりません。 解析されたトークンのバイト数が同じ正規化されたステートメントダイジェストを生成し、比較された場合、またはダイジェスト統計のために集計された場合にのみ、ステートメントが同じであるとみなされます。
max_digest_length
値を小さくするとメモリー使用量は減少しますが、末尾のみが異なる場合は、より多くのステートメントのダイジェスト値が区別できなくなります。 この値を大きくすると、より長いステートメントを区別できますが、特に多数の同時セッションを含むワークロード (サーバーはセッションごとにmax_digest_length
バイトを割り当てます) では、メモリー使用量が増加します。パーサーは、このシステム変数を、計算する正規化されたステートメントダイジェストの最大長の制限として使用します。 パフォーマンススキーマは、ステートメントダイジェストを追跡する場合、格納するダイジェストの最大長の制限として
performance_schema_max_digest_length
. システム変数を使用してダイジェスト値のコピーを作成します。 したがって、performance_schema_max_digest_length
がmax_digest_length
より小さい場合、パフォーマンススキーマに格納されているダイジェスト値は、元のダイジェスト値と比較して切り捨てられます。ステートメントダイジェストの詳細については、セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。
-
コマンド行形式 --max-error-count=#
システム変数 max_error_count
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 1024
最小値 0
最大値 65535
SHOW ERRORS
およびSHOW WARNINGS
ステートメントで表示するために格納されるエラー、警告および情報メッセージの最大数。 これは診断領域内の条件領域の数と同じで、GET DIAGNOSTICS
によって調査できる条件数と同じです。 -
コマンド行形式 --max-execution-time=#
システム変数 max_execution_time
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 0
SELECT
ステートメントの実行タイムアウト (ミリ秒)。 値が 0 の場合、タイムアウトは有効になりません。max_execution_time
は次のように適用されます:グローバル
max_execution_time
値は、新しい接続のセッション値のデフォルトを提供します。 セッション値は、MAX_EXECUTION_TIME(
オプティマイザヒントを含まない、またはN
)N
が 0 のセッション内で実行されるSELECT
実行に適用されます。max_execution_time
は、読取り専用のSELECT
ステートメントに適用されます。 読み取り専用でないステートメントは、副作用としてデータを変更するストアドファンクションを呼び出すステートメントです。ストアドプログラムの
SELECT
ステートメントでは、max_execution_time
は無視されます。
-
コマンド行形式 --max-heap-table-size=#
システム変数 max_heap_table_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 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.5.1.21「レプリケーションと MEMORY テーブル」およびセクション17.5.1.39「レプリケーションと変数」を参照してください。 -
非推奨 はい システム変数 max_insert_delayed_threads
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer この変数は、
max_delayed_threads
のシノニムです。このシステム変数は非推奨です (
DELAYED
の挿入はサポートされていないため)。将来のリリースで削除される予定です。 -
コマンド行形式 --max-join-size=#
システム変数 max_join_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 18446744073709551615
最小値 1
最大値 18446744073709551615
検査が必要となる行数 (単一テーブルステートメントの場合) または行の組み合わせの数 (複数テーブルステートメントの場合) が、
max_join_size
をおそらく超えるか、ディスクシークがmax_join_size
回を超えて実行される可能性があるステートメントを許可しません。 この値を設定することで、キーが適切に使用されず長い時間がかかりそうなステートメントをキャッチできます。 ユーザーが、WHERE
句のない結合、長い時間がかかる結合、または数百万行を返す結合を実行する傾向がある場合にこれを設定します。 詳細は、セーフ更新モードの使用 (--safe-updates)を参照してください。この変数を
DEFAULT
以外の値に設定すると、sql_big_selects
の値が0
にリセットされます。sql_big_selects
値を再設定すると、max_join_size
変数は無視されます。 -
コマンド行形式 --max-length-for-sort-data=#
非推奨 8.0.20 システム変数 max_length_for_sort_data
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 4096
最小値 4
最大値 8388608
この変数は、オプティマイザの変更によって廃止され、効果がないため、MySQL 8.0.20 では非推奨になりました。 以前は、使用する
filesort
アルゴリズムを決定するインデックス値のサイズに対するカットオフとして機能していました。 セクション8.2.1.16「ORDER BY の最適化」を参照してください。 -
コマンド行形式 --max-points-in-geometry=#
システム変数 max_points_in_geometry
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 65536
最小値 3
最大値 1048576
ST_Buffer_Strategy()
関数に対するpoints_per_circle
引数の最大値。 -
コマンド行形式 --max-prepared-stmt-count=#
システム変数 max_prepared_stmt_count
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 16382
最小値 0
最大値 (≥ 8.0.18) 4194304
最大値 (≤ 8.0.17) 1048576
この変数は、サーバー内のプリペアドステートメントの総数を制限します。 これは、大量のステートメントを作成することによってサーバーの実行するメモリーを不足させることに基づくサービス妨害攻撃の可能性がある環境で使用できます。 値が現在のプリペアドステートメントの数より低く設定された場合、既存のステートメントは影響を受けずに使用できますが、現在の数が制限を下回るまで新しいステートメントを作成できません。 値を 0 に設定すると、プリペアドステートメントが無効になります。
-
コマンド行形式 --max-seeks-for-key=#
システム変数 max_seeks_for_key
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 (Windows) 4294967295
デフォルト値 (その他, 64 ビットプラットフォーム) 18446744073709551615
デフォルト値 (その他, 32 ビットプラットフォーム) 4294967295
最小値 1
最大値 (Windows) 4294967295
最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615
最大値 (その他, 32 ビットプラットフォーム) 4294967295
キーに基づいて行を参照するとき、推定されるシークの最大数を制限します。 MySQL オプティマイザは、インデックスをスキャンすることによってテーブル内で一致する行を検索するとき、インデックスの実際のカーディナリティーに関係なく、この数を超えるキーシークは不要であると推定します (セクション13.7.7.22「SHOW INDEX ステートメント」を参照してください)。 これを低い値 (100 など) に設定することで、MySQL でテーブルスキャンよりもインデックスを優先するように強制できます。
-
コマンド行形式 --max-sort-length=#
システム変数 max_sort_length
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 1024
最小値 4
最大値 8388608
データ値をソートするときに使用するバイト数。 サーバーは、各値の最初の
max_sort_length
バイトのみを使用し、残りは無視します。 したがって、最初のmax_sort_length
バイトの後にのみ異なる値は、GROUP BY
、ORDER BY
およびDISTINCT
操作で等しいと比較されます。max_sort_length
の値を増やすには、sort_buffer_size
の値も増やす必要があります。 詳細は、セクション8.2.1.16「ORDER BY の最適化」を参照してください -
コマンド行形式 --max-sp-recursion-depth[=#]
システム変数 max_sp_recursion_depth
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最大値 255
任意のストアドプロシージャーを再帰的に呼び出すことができる回数。 このオプションのデフォルト値は 0 で、これはストアドプロシージャーの再帰を完全に無効化します。 最大値は 255 です。
ストアドプロシージャーの再帰により、スレッドスタック領域の要求が増加します。
max_sp_recursion_depth
の値を増やした場合、サーバー起動時にthread_stack
の値を増やすことによってスレッドスタックサイズを増やすことが必要な場合もあります。 -
コマンド行形式 --max-user-connections=#
システム変数 max_user_connections
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 4294967295
任意の MySQL ユーザーアカウントに許可された最大同時接続数。 値 0 (デフォルト) は「制限なし」を意味します。
この変数は、サーバー起動時または実行時に設定できるグローバル値を持ちます。 また、現在のセッションに関連付けられたアカウントに適用される、実際の同時接続制限を示す読み取り専用のセッション値も持ちます。 セッション値は次のように初期化されます。
ユーザーアカウントの
MAX_USER_CONNECTIONS
リソース制限がゼロでない場合、セッションmax_user_connections
の値はその制限値に設定されます。そうでない場合、セッション
max_user_connections
の値はグローバル値に設定されます。
アカウントのリソース制限は、
CREATE USER
ステートメントまたはALTER USER
ステートメントを使用して指定します。 セクション6.2.20「アカウントリソース制限の設定」を参照してください。 -
コマンド行形式 --max-write-lock-count=#
システム変数 max_write_lock_count
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 (Windows) 4294967295
デフォルト値 (その他, 64 ビットプラットフォーム) 18446744073709551615
デフォルト値 (その他, 32 ビットプラットフォーム) 4294967295
最小値 1
最大値 (Windows) 4294967295
最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615
最大値 (その他, 32 ビットプラットフォーム) 4294967295
この大きさの書き込みロックのあと、保留中の読み取りロックリクエストの処理を間で許可します。 書き込みロック要求の優先順位は、読み取りロック要求よりも高くなります。 ただし、
max_write_lock_count
がある程度低い値 (たとえば、10) に設定されている場合、読み取りロック要求がすでに 10 個の書き込みロック要求を優先して渡されていれば、保留中の書き込みロック要求よりも読み取りロック要求が優先されることがあります。 通常、max_write_lock_count
のデフォルト値は非常に大きいため、この動作は発生しません。 -
コマンド行形式 --mecab-rc-file=file_name
システム変数 mecab_rc_file
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 mecab_rc_file
オプションは、MeCab 全文パーサーの設定時に使用されます。mecab_rc_file
オプションは、MeCab の構成ファイルであるmecabrc
構成ファイルへのパスを定義します。 このオプションは読取り専用で、起動時にのみ設定できます。 MeCab を初期化するには、mecabrc
構成ファイルが必要です。MeCab 全文パーサーの詳細は、セクション12.10.9「MeCab フルテキストパーサープラグイン」 を参照してください。
MeCab
mecabrc
構成ファイルで指定できるオプションの詳細は、「Google 開発者」サイトの「MeCab ドキュメント」を参照してください。 -
コマンド行形式 --metadata-locks-cache-size=#
非推奨 はい (removed in 8.0.13) システム変数 metadata_locks_cache_size
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1024
最小値 1
最大値 1048576
このシステム変数は、MySQL 8.0.13 で削除されました。
-
コマンド行形式 --metadata-locks-hash-instances=#
非推奨 はい (removed in 8.0.13) システム変数 metadata_locks_hash_instances
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 8
最小値 1
最大値 1024
このシステム変数は、MySQL 8.0.13 で削除されました。
-
コマンド行形式 --min-examined-row-limit=#
システム変数 min_examined_row_limit
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
これよりも少ない行数を検査するクエリーは、スロークエリーログに記録されません。
-
コマンド行形式 --myisam-data-pointer-size=#
システム変数 myisam_data_pointer_size
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 6
最小値 2
最大値 7
MAX_ROWS
オプションが指定されていない場合にMyISAM
テーブルのCREATE TABLE
によって使用されるバイト単位のデフォルトポインタサイズ。 この値を 2 より小さくしたり 7 より大きくしたりすることはできません。 デフォルト値は 6 です。 セクションB.3.2.10「テーブルが満杯です」を参照してください。 -
コマンド行形式 --myisam-max-sort-file-size=#
システム変数 myisam_max_sort_file_size
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 (Windows) 2146435072
デフォルト値 (その他, 64 ビットプラットフォーム) 9223372036853727232
デフォルト値 (その他, 32 ビットプラットフォーム) 2147483648
最大値 (Windows) 2146435072
最大値 (その他, 64 ビットプラットフォーム) 9223372036853727232
最大値 (その他, 32 ビットプラットフォーム) 2147483648
MyISAM
インデックスの再作成時 (REPAIR TABLE
、ALTER TABLE
またはLOAD DATA
) に MySQL で使用できる一時ファイルの最大サイズ。 ファイルサイズがこの値より大きい場合、さらに低速なキーキャッシュを代わりに使用してインデックスが作成されます。 値はバイト単位で指定されます。MyISAM
インデックスファイルがこのサイズを超えて、ディスクスペースが使用できる場合、この値を大きくするとパフォーマンスが向上することがあります。 このスペースは、元のインデックスファイルが配置されているディレクトリを含むファイルシステム内で利用する必要があります。 -
コマンド行形式 --myisam-mmap-size=#
システム変数 myisam_mmap_size
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 (64 ビットプラットフォーム) 18446744073709551615
デフォルト値 (32 ビットプラットフォーム) 4294967295
最小値 7
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
圧縮された
MyISAM
ファイルのメモリーマッピングに使用する最大のメモリー量。 圧縮されたMyISAM
テーブルが多く使用される場合、この値を減らすことで、メモリースワッピングの問題が生じるおそれを低下できます。 -
コマンド行形式 --myisam-recover-options[=list]
システム変数 myisam_recover_options
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 OFF
有効な値 OFF
DEFAULT
BACKUP
FORCE
QUICK
MyISAM
のストレージエンジンのリカバリモードを設定します。 変数値は、OFF
,DEFAULT
,BACKUP
,FORCE
またはQUICK
の値の任意の組合せです。 複数の値を指定する場合、値をカンマで区切ります。 サーバー起動時に値なしで変数を指定することはDEFAULT
を指定することと同じで、明示的な値を""
に指定するとリカバリが無効になります (OFF
の値と同じ)。 リカバリが有効な場合、mysqld はMyISAM
テーブルをオープンするたび、テーブルがクラッシュしたというマークが付いているか、テーブルが正しくクローズしなかったかどうかをチェックします。 (最後のオプションは外部ロックを無効にして実行している場合のみ機能します。) このような場合、mysqld はテーブル上でチェックを実行します。 テーブルが破損していた場合、mysqld は修復を試みます。次のオプションは修復の動作方法に影響します。
オプション 説明 OFF
リカバリなし。 DEFAULT
バックアップ、強制、クイックチェックを行わないリカバリ。 BACKUP
データファイルがリカバリ中に変更された場合、
ファイルのバックアップをtbl_name
.MYD
として保存します。tbl_name-datetime
.BAKFORCE
.MYD
ファイルから複数のレコードがなくなる場合でもリカバリを実行します。QUICK
削除ブロックがない場合、テーブルの行をチェックしません。 サーバーがテーブルを自動的に修復する前に、サーバーは修復に関するメモをエラーログに書き込みます。 ユーザーが介入せずにほとんどの問題をリカバリできるようにするには、
BACKUP,FORCE
オプションを使用します。 これにより、一部の行が削除される場合でもテーブルの修復を強制しますが、古いデータファイルをバックアップとして保持しているため、何が発生したかをあとで検査できます。セクション16.2.1「MyISAM 起動オプション」を参照してください。
-
コマンド行形式 --myisam-repair-threads=#
システム変数 myisam_repair_threads
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
この値が 1 より大きい場合、
MyISAM
テーブルインデックスはRepair by sorting
プロセス中に並列で作成されます (各インデックスはインデックス独自のスレッド内)。 デフォルト値は 1 です。注記マルチスレッド修復はまだ beta-quality コードです。
-
コマンド行形式 --myisam-sort-buffer-size=#
システム変数 myisam_sort_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 8388608
最小値 4096
最大値 (Windows, 64 ビットプラットフォーム) 18446744073709551615
最大値 (Windows, 32 ビットプラットフォーム) 4294967295
最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615
最大値 (その他, 32 ビットプラットフォーム) 4294967295
REPAIR TABLE
中にMyISAM
インデックスをソートするときや、CREATE INDEX
またはALTER TABLE
を使用してインデックスを作成するときに割り当てられるバッファーのサイズ。 -
コマンド行形式 --myisam-stats-method=name
システム変数 myisam_stats_method
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 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.8「InnoDB および MyISAM インデックス統計コレクション」に記載されているように、オプティマイザがクエリー実行のためのインデックスを選択する方法に影響を与えます。
-
コマンド行形式 --myisam-use-mmap[={OFF|ON}]
システム変数 myisam_use_mmap
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
MyISAM
テーブルの読み取りおよび書き込みでメモリーマッピングを使用します。 -
mysql_native_password_proxy_users
コマンド行形式 --mysql-native-password-proxy-users[={OFF|ON}]
システム変数 mysql_native_password_proxy_users
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、
mysql_native_password
組込み認証プラグインがプロキシユーザーをサポートするかどうかを制御します。check_proxy_users
システム変数が有効になっていないかぎり、効果はありません。 ユーザープロキシの詳細は、セクション6.2.18「プロキシユーザー」 を参照してください。 -
コマンド行形式 --named-pipe[={OFF|ON}]
システム変数 named_pipe
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ プラットフォーム固有 Windows 型 Boolean デフォルト値 OFF
(Windows のみ。) サーバーが名前付きパイプでの接続をサポートしているかどうかを指定します。
-
コマンド行形式 --named-pipe-full-access-group=value
導入 8.0.14 システム変数 named_pipe_full_access_group
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ プラットフォーム固有 Windows 型 文字列 デフォルト値 *everyone*
有効な値 *everyone*
empty string
(Windows のみ。) MySQL サーバーによって作成された名前付きパイプ上のクライアントに付与されるアクセス制御は、
named_pipe
システム変数が名前付きパイプ接続をサポートできるようになっている場合に、正常に通信するために必要な最小値に設定されます。 新しい MySQL クライアントソフトウェアでは、追加の構成なしで名前付きパイプ接続を開くことができますが、古いクライアントソフトウェアでは、名前付きパイプ接続を開くために完全なアクセスが必要になる場合があります。この変数は、古い名前付きパイプクライアントを使用するための十分なアクセス権が MySQL サーバーによってメンバーに付与されている Windows ローカルグループの名前を設定します。 初期状態では、この値はデフォルトで
'*everyone*'
に設定されており、古いクライアントがアップグレードされるまで、Windows 上の Everyone グループのユーザーは古いクライアントを引き続き使用できます。 一方、値を空の文字列に設定すると、名前付きパイプへのフルアクセス権が Windows ユーザーに付与されなくなります。 デフォルト値の'*everyone*'
では、言語に依存しない方法で Windows の Everyone グループを参照できます。新しい Windows ローカルグループ名 (
mysql_old_client_users
など) を Windows で作成し、古いクライアントソフトウェアへのアクセスが絶対に必要な場合にこの変数のデフォルト値を置き換えるために使用することが理想的です。 この場合、グループのメンバーシップをできるだけ少ないユーザーに制限し、クライアントソフトウェアのアップグレード時にグループからユーザーを削除します。 古い名前付きパイプクライアントを使用して MySQL への接続を開こうとするグループの非メンバーは、ユーザーが Windows 管理者によってグループに追加され、ログアウトしてログインするまでアクセスが拒否されます (Windows で必要)。 -
コマンド行形式 --net-buffer-length=#
システム変数 net_buffer_length
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 16384
最小値 1024
最大値 1048576
各クライアントスレッドは、接続バッファーおよび結果バッファーに関連付けられています。 両者は
net_buffer_length
で与えられたサイズで開始されますが、必要に応じて、max_allowed_packet
バイトまで動的に拡大できます。 結果バッファーは、各 SQL ステートメントのあとでnet_buffer_length
に縮小されます。この変数は通常は変更しませんが、メモリーが非常に少ない場合、クライアントによって送信される予想されるステートメントの長さに設定できます。 ステートメントがこの長さを超えた場合、接続バッファーは自動的に拡大されます。
net_buffer_length
の最大値は 1M バイトに設定できます。この変数のセッションの値は、読み取り専用です。
-
コマンド行形式 --net-read-timeout=#
システム変数 net_read_timeout
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 30
最小値 1
読み取りを中止する前に接続からのデータを待機する秒数。 サーバーがクライアントからの読み込みを行うとき、
net_read_timeout
は中止するタイミングを制御するタイムアウト値です。 サーバーがクライアントに書き込みを行うとき、net_write_timeout
は中止するタイミングを制御するタイムアウト値です。slave_net_timeout
も参照してください。 -
コマンド行形式 --net-retry-count=#
システム変数 net_retry_count
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 10
最小値 1
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
通信ポートでの読み取りまたは書き込みが中断された場合、停止するまでこの回数だけ再試行します。 FreeBSD では内部の中断がすべてのスレッドに送信されるため、この値をきわめて高く設定するようにしてください。
-
コマンド行形式 --net-write-timeout=#
システム変数 net_write_timeout
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 60
最小値 1
書き込みを中止する前にブロックが接続に書き込まれるのを待機する秒数。
net_read_timeout
も参照してください。 -
コマンド行形式 --new[={OFF|ON}]
システム変数 new
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 無効化 skip-new
型 Boolean デフォルト値 OFF
この変数は、一部の 4.1 の動作をオンにするために MySQL 4.0 で使用されており、下位互換性のために保持されています。 その値は常に
OFF
です。NDB Cluster でこの変数を
ON
に設定すると、KEY
またはLINEAR KEY
以外のパーティショニングタイプをNDB
テーブルとともに使用できるようになります。 この機能は試験的なものであり、本番ではサポートされていません。 追加情報については ユーザー定義のパーティション分割と NDB ストレージエンジン (NDB Cluster)を参照してください。 -
コマンド行形式 --ngram-token-size=#
システム変数 ngram_token_size
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 2
最小値 1
最大値 10
n-gram 全文パーサーの n-gram トークンサイズを定義します。
ngram_token_size
オプションは読取り専用で、起動時にのみ変更できます。 デフォルト値は 2 (bigram) です。 最大値は 10 です。この変数の構成方法の詳細は、セクション12.10.8「ngram 全文パーサー」 を参照してください。
-
コマンド行形式 --offline-mode[={OFF|ON}]
システム変数 offline_mode
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
サーバーが「「オフラインモード」」内にあるかどうか。次の特性があります:
CONNECTION_ADMIN
権限 (または非推奨のSUPER
権限) を持たない接続クライアントユーザーは、次のリクエストで切断され、適切なエラーが発生します。 切断には、実行中のステートメントの終了およびロックの解放が含まれます。 また、このようなクライアントは新しい接続を開始できず、適切なエラーを受け取ります。CONNECTION_ADMIN
またはSUPER
権限を持つ接続クライアントユーザーは切断されず、新しい接続を開始してサーバーを管理できます。レプリケーションスレッドは、サーバーへのデータの適用を継続できます。
オフラインモードを制御できるのは、
SYSTEM_VARIABLES_ADMIN
またはSUPER
権限を持つユーザーのみです。 サーバーをオフラインモードにするには、offline_mode
システム変数の値をOFF
からON
に変更します。 通常の操作を再開するには、offline_mode
をON
からOFF
に変更します。 オフラインモードでは、アクセスを拒否されたクライアントはER_SERVER_OFFLINE_MODE
エラーを受け取ります。 -
コマンド行形式 --old[={OFF|ON}]
システム変数 old
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
old
は互換性変数です。 これはデフォルトでは無効化されていますが、以前のバージョンに存在した動作にサーバーを戻すために、起動時に有効にできます。old
を有効にすると、インデックスヒントのデフォルトの有効範囲が MySQL 5.1.17 より前に使用されていた有効範囲に変更されます。 つまり、FOR
句を使用しないインデックスヒントは、インデックスが行の取得に使用する方法についてのみ適用され、ORDER BY
句またはGROUP BY
句の解決には適用されません。 (セクション8.9.4「インデックスヒント」を参照してください。) レプリケーションのセットアップでこれを有効にする場合は注意してください。 ステートメントベースのバイナリロギングでは、ソースとレプリカのモードが異なると、レプリケーションエラーが発生する可能性があります。 -
コマンド行形式 --old-alter-table[={OFF|ON}]
システム変数 old_alter_table
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数を有効にすると、サーバーは
ALTER TABLE
操作を処理する最適化された方法を使用しません。 一時テーブルの使用に戻り、データのコピー後、MySQL 5.0 以前で使用されていたように、一時テーブルを元のテーブルの名前に変更します。ALTER TABLE
の操作について詳しくは、セクション13.1.9「ALTER TABLE ステートメント」を参照してください。old_alter_table=ON
を使用したALTER TABLE ... DROP PARTITION
は、パーティションテーブルを再構築し、削除されたパーティションから互換性のあるPARTITION ... VALUES
定義を持つ別のパーティションにデータを移動しようとします。 別のパーティションに移動できないデータは削除されます。 以前のリリースでは、old_alter_table=ON
を使用したALTER TABLE ... DROP PARTITION
は、パーティションに格納されているデータを削除し、パーティションを削除していました。 -
コマンド行形式 --open-files-limit=#
システム変数 open_files_limit
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 5000, with possible adjustment
最小値 0
最大値 platform dependent
オペレーティングシステムから mysqld で使用可能なファイル記述子の数:
起動時に、mysqld は、この変数を直接設定するか、mysqld_safe の
--open-files-limit
オプションを使用して、リクエストされた値を使用して、setrlimit()
でディスクリプタを予約します。 mysqld でエラーToo many open files
が生成された場合は、open_files_limit
値を増やしてみてください。 内部的には、この変数の最大値は符号なし整数の最大値ですが、実際の最大値はプラットフォームに依存します。実行時、
open_files_limit
の値は、オペレーティングシステムによって実際に mysqld に許可されるファイル記述子の数を示します。これは、起動時に要求される値とは異なる場合があります。 起動時にリクエストされたファイル記述子の数を割り当てることができない場合、mysqld はエラーログに警告を書き込みます。
実際の
open_files_limit
の値は、システム起動時に指定された値 (ある場合) と、max_connections
およびtable_open_cache
の値に基づき、次の式を使用します。10 + max_connections + (table_open_cache * 2)
max_connections * 5
MySQL 8.0.19 以上: オペレーティングシステムの制限。
-
MySQL 8.0.19 より前:
オペレーティングシステムの制限 (その制限が正で、Infinity ではない場合)。
オペレーティングシステムの制限が Infinity の場合: 起動時に指定された場合は
open_files_limit
値、指定されていない場合は 5000。
サーバーは、それらの値の最大値を使用してファイル記述子の数を取得しようとします。この値は、符号なし整数の最大値に制限されます。 そのような数の記述子を取得できない場合、サーバーはシステムが許可する数だけ取得しようとします。
MySQL がオープンファイルの数を変更できないシステムでは、有効な値は 0 です。
Unix では、ulimit -n コマンドで表示される値より大きい値を設定することはできません。
-
コマンド行形式 --optimizer-prune-level=#
システム変数 optimizer_prune_level
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 1
最小値 0
最大値 1
見込みのない部分的プランをオプティマイザ検索スペースから削除するために、クエリー最適化中に適用される経験則を制御します。 値 0 は、オプティマイザが網羅的な検索を実行できるよう経験則を無効にします。 値 1 は、中間プランによって取得された行の数に基づいて、オプティマイザにプランを削除させます。
-
コマンド行形式 --optimizer-search-depth=#
システム変数 optimizer_search_depth
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 62
最小値 0
最大値 62
クエリーオプティマイザによって実行される検索の最大の深さ。 クエリー内の関係の数より値が大きいと、適切なクエリー計画が得られますが、クエリーの実行計画の生成に時間がかかります。 クエリー内の関係の数より値が小さいと、実行プランがすばやく返されますが、結果のプランがまったく最適にならないことがあります。 0 に設定された場合、システムは合理的な値を自動的に選択します。
-
コマンド行形式 --optimizer-switch=value
システム変数 optimizer_switch
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Set 有効な値 (≥ 8.0.22) batched_key_access={on|off}
block_nested_loop={on|off}
condition_fanout_filter={on|off}
derived_condition_pushdown={on|off}
derived_merge={on|off}
duplicateweedout={on|off}
engine_condition_pushdown={on|off}
firstmatch={on|off}
hash_join={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}
prefer_ordering_index={on|off}
semijoin={on|off}
skip_scan={on|off}
subquery_materialization_cost_based={on|off}
use_index_extensions={on|off}
use_invisible_indexes={on|off}
有効な値 (≥ 8.0.21) batched_key_access={on|off}
block_nested_loop={on|off}
condition_fanout_filter={on|off}
derived_merge={on|off}
duplicateweedout={on|off}
engine_condition_pushdown={on|off}
firstmatch={on|off}
hash_join={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}
prefer_ordering_index={on|off}
semijoin={on|off}
skip_scan={on|off}
subquery_materialization_cost_based={on|off}
use_index_extensions={on|off}
use_invisible_indexes={on|off}
有効な値 (≥ 8.0.18) batched_key_access={on|off}
block_nested_loop={on|off}
condition_fanout_filter={on|off}
derived_merge={on|off}
duplicateweedout={on|off}
engine_condition_pushdown={on|off}
firstmatch={on|off}
hash_join={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}
skip_scan={on|off}
subquery_materialization_cost_based={on|off}
use_index_extensions={on|off}
use_invisible_indexes={on|off}
有効な値 (≥ 8.0.13) batched_key_access={on|off}
block_nested_loop={on|off}
condition_fanout_filter={on|off}
derived_merge={on|off}
duplicateweedout={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}
skip_scan={on|off}
subquery_materialization_cost_based={on|off}
use_index_extensions={on|off}
use_invisible_indexes={on|off}
有効な値 (≤ 8.0.12) batched_key_access={on|off}
block_nested_loop={on|off}
condition_fanout_filter={on|off}
derived_merge={on|off}
duplicateweedout={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}
use_invisible_indexes={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,duplicateweedout=on, subquery_materialization_cost_based=on, use_index_extensions=on,condition_fanout_filter=on, derived_merge=on,use_invisible_indexes=off,skip_scan=on, hash_join=on,subquery_to_derived=off, prefer_ordering_index=on,hypergraph_optimizer=off, derived_condition_pushdown=on
この変数の構文と、制御するオプティマイザの動作の詳細については、セクション8.9.2「切り替え可能な最適化」を参照してください。
-
コマンド行形式 --optimizer-trace=value
システム変数 optimizer_trace
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 この変数はオプティマイザのトレースを制御します。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-features=value
システム変数 optimizer_trace_features
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 この変数は選択されたオプティマイザトレース機能を有効または無効にします。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-limit=#
システム変数 optimizer_trace_limit
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1
表示するオプティマイザトレースの最大数。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-max-mem-size=#
システム変数 optimizer_trace_max_mem_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 1048576
格納されるオプティマイザトレースの最大累積サイズ。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-offset=#
システム変数 optimizer_trace_offset
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 -1
表示するオプティマイザトレースのオフセット。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
performance_schema_
xxx
パフォーマンススキーマのシステム変数は、セクション27.15「パフォーマンススキーマシステム変数」にリストされています。 これらの変数は、パフォーマンススキーマ操作を構成するために使用されることもあります。
-
コマンド行形式 --parser-max-mem-size=#
システム変数 parser_max_mem_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 (64 ビットプラットフォーム) 18446744073709551615
デフォルト値 (32 ビットプラットフォーム) 4294967295
最小値 10000000
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
パーサーで使用可能なメモリーの最大量。 デフォルト値では、使用可能なメモリーに制限はありません。 この値を減らして、長い SQL ステートメントまたは複雑な SQL ステートメントの解析によって生じるメモリー不足の状況から保護できます。
-
コマンド行形式 --partial-revokes[={OFF|ON}]
導入 8.0.16 システム変数 partial_revokes
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
(部分的な取消しが存在しない場合)ON
(部分的な取消しが存在する場合)この変数を有効にすると、権限を部分的に取り消すことができます。 具体的には、グローバルレベルの権限を持つユーザーの場合、
partial_revokes
では、特定のスキーマの権限を取り消しながら、他のスキーマの権限をそのままにすることができます。 たとえば、グローバルUPDATE
権限を持つユーザーは、mysql
システムスキーマに対するこの権限の実行を制限できます。 (または、別の方法で、ユーザーはmysql
スキーマを除くすべてのスキーマに対してUPDATE
権限を実行できます。) この意味では、ユーザーのグローバルUPDATE
権限は部分的に取り消されます。一度有効にすると、アカウントに権限制限がある場合は
partial_revokes
を無効にできません。 そのようなアカウントが存在する場合、partial_revokes
の無効化は失敗します:起動時に
partial_revokes
を無効にしようとすると、サーバーはエラーメッセージをログに記録し、partial_revokes
を有効にします。実行時に
partial_revokes
を無効にしようとすると、エラーが発生し、partial_revokes
値は変更されません。
この場合に
partial_revokes
を無効にするには、まず権限を再付与するか、アカウントを削除して、権限が部分的に取り消された各アカウントを変更します。部分的な取消しを削除する手順などの詳細は、セクション6.2.12「部分取消しを使用した権限の制限」 を参照してください。
-
コマンド行形式 --password-history=#
システム変数 password_history
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 4294967295
この変数は、必要な最小パスワード変更数に基づいて以前のパスワードの再利用を制御するグローバルポリシーを定義します。 以前に使用されたアカウントパスワードの場合、この変数は、パスワードを再利用する前に発生する必要がある後続のアカウントパスワード変更の数を示します。 値が 0 (デフォルト) の場合、パスワード変更の数に基づく再利用制限はありません。
この変数への変更は、
PASSWORD HISTORY DEFAULT
オプションで定義されたすべてのアカウントにただちに適用されます。CREATE USER
ステートメントおよびALTER USER
ステートメントのPASSWORD HISTORY
オプションを使用して、個々のアカウントに対して必要に応じて変更のグローバル数のパスワード再利用ポリシーをオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --password-require-current[={OFF|ON}]
導入 8.0.13 システム変数 password_require_current
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、アカウントパスワードを変更しようとする際に、置換する現在のパスワードを指定する必要があるかどうかを制御するグローバルポリシーを定義します。
この変数への変更は、
PASSWORD REQUIRE CURRENT DEFAULT
オプションで定義されたすべてのアカウントにただちに適用されます。グローバル検証必須ポリシーは、
CREATE USER
ステートメントおよびALTER USER
ステートメントのPASSWORD REQUIRE
オプションを使用して、個々のアカウントに対して必要に応じてオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --password-reuse-interval=#
システム変数 password_reuse_interval
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 4294967295
この変数は、経過時間に基づいて以前のパスワードの再利用を制御するグローバルポリシーを定義します。 以前に使用したアカウントパスワードの場合、この変数は、パスワードを再利用するまでに経過する必要がある日数を示します。 値が 0 (デフォルト) の場合、経過時間に基づく再利用制限はありません。
この変数への変更は、
PASSWORD REUSE INTERVAL DEFAULT
オプションで定義されたすべてのアカウントにただちに適用されます。グローバル経過時間パスワード再利用ポリシーは、
CREATE USER
ステートメントおよびALTER USER
ステートメントのPASSWORD REUSE INTERVAL
オプションを使用して、個々のアカウントに対して必要に応じてオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --persisted-globals-load[={OFF|ON}]
システム変数 persisted_globals_load
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
永続化された構成設定をデータディレクトリの
mysqld-auto.cnf
ファイルからロードするかどうか。 サーバーは通常、このファイルを起動時にほかのすべてのオプションファイルのあとに処理します (セクション4.2.2.2「オプションファイルの使用」 を参照)。persisted_globals_load
を無効にすると、サーバーの起動シーケンスでmysqld-auto.cnf
がスキップされます。mysqld-auto.cnf
の内容を変更するには、SET PERSIST
、SET PERSIST_ONLY
およびRESET PERSIST
ステートメントを使用します。 セクション5.1.9.3「永続化されるシステム変数」を参照してください。 -
persist_only_admin_x509_subject
コマンド行形式 --persist-only-admin-x509-subject=string
導入 8.0.14 システム変数 persist_only_admin_x509_subject
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 empty string
SET PERSIST
およびSET PERSIST_ONLY
を使用すると、システム変数をデータディレクトリ内のmysqld-auto.cnf
オプションファイルに永続化できます (セクション13.7.6.1「変数代入の SET 構文」 を参照)。 システム変数を永続化すると、後続のサーバーの再起動に影響する実行時構成の変更が可能になります。これは、MySQL サーバーのホストオプションファイルに直接アクセスする必要がないリモート管理に便利です。 ただし、一部のシステム変数は永続的でないか、特定の制限条件下でのみ永続化できます。persist_only_admin_x509_subject
システム変数は、ユーザーが永続的に制限されたシステム変数を永続化できるようにするために必要な SSL 証明書の X.509 サブジェクト値を指定します。 デフォルト値は空の文字列で、サブジェクトチェックを無効にして、永続的に制限されたシステム変数をユーザーが永続化できないようにします。persist_only_admin_x509_subject
が空でない場合、暗号化された接続を使用してサーバーに接続し、指定されたサブジェクト値で SSL 証明書を提供するユーザーは、SET PERSIST_ONLY
を使用して永続制限付きシステム変数を永続化できます。 永続制限付きシステム変数およびpersist_only_admin_x509_subject
を有効にするように MySQL を構成する手順の詳細は、セクション5.1.9.4「永続的で永続的に制限されないシステム変数」 を参照してください。 -
コマンド行形式 --pid-file=file_name
システム変数 pid_file
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 サーバーがプロセス ID を書き込むファイルのパス名。 サーバーは、別のディレクトリを指定する絶対パス名が指定されないかぎり、データディレクトリ内にファイルを作成します。 この変数を指定する場合は、値を指定する必要があります。 この変数を指定しない場合、MySQL はデフォルト値の
を使用します。host_name
.pidhost_name
はホストマシンの名前です。プロセス ID ファイルは、mysqld_safe などの他のプログラムでサーバープロセス ID を決定するために使用されます。 Windows では、この変数はデフォルトのエラーログファイル名にも影響します。 セクション5.4.2「エラーログ」 を参照してください。
-
コマンド行形式 --plugin-dir=dir_name
システム変数 plugin_dir
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 デフォルト値 BASEDIR/lib/plugin
プラグインディレクトリのパス名。
プラグインディレクトリがサーバーによって書き込み可能な場合、ユーザーは
SELECT ... INTO DUMPFILE
を使用して、ディレクトリ内のファイルに実行可能コードを書き込むことができます。 これを回避するには、plugin_dir
をサーバーに対して読取り専用にするか、SELECT
書込みを安全に行うことができるディレクトリにsecure_file_priv
を設定します。 -
コマンド行形式 --port=port_num
システム変数 port
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 3306
最小値 0
最大値 65535
サーバーが TCP/IP 接続を listen するポートの数。 この変数は、
--port
オプションで設定できます。 -
コマンド行形式 --preload-buffer-size=#
システム変数 preload_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 32768
最小値 1024
最大値 1073741824
インデックスをプリロードしたときに割り当てられるバッファーのサイズ。
-
コマンド行形式 --print-identified-with-as-hex[={OFF|ON}]
導入 8.0.17 システム変数 print_identified_with_as_hex
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
SHOW CREATE USER
からの出力のIDENTIFIED WITH
句に表示されるパスワードハッシュ値には、端末表示やその他の環境に悪影響を与える印刷不可能な文字が含まれている可能性があります。print_identified_with_as_hex
を有効にすると、SHOW CREATE USER
では、通常の文字列リテラルではなく 16 進数文字列などのハッシュ値が表示されます。 印刷できない文字を含まないハッシュ値は、この変数が有効になっていても、通常の文字列リテラルとして表示されます。 -
0 または
OFF
(デフォルト) に設定した場合、ステートメントのプロファイリングは無効になります。 1 またはON
に設定した場合、ステートメントのプロファイリングは有効になり、SHOW PROFILE
およびSHOW PROFILES
ステートメントはプロファイリング情報へのアクセスを提供します。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
profiling
が有効な場合にプロファイリング情報を保持する対象となるステートメントの数。 デフォルト値は 15 です。 最大値は 100 です。 値を 0 に設定すると、プロファイリングは実質的に無効になります。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
protocol_compression_algorithms
コマンド行形式 --protocol-compression-algorithms=value
導入 8.0.18 システム変数 protocol_compression_algorithms
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Set デフォルト値 zlib,zstd,uncompressed
有効な値 zlib
zstd
uncompressed
サーバーが受信接続に対して許可する圧縮アルゴリズム。 これには、クライアントプログラムおよびソース/レプリカレプリケーションまたはグループレプリケーションに参加しているサーバーによる接続が含まれます。 圧縮は
FEDERATED
テーブルの接続には適用されません。protocol_compression_algorithms
は、X プロトコル の接続圧縮を制御しません。 この動作の詳細は、セクション20.5.5「X プラグイン での接続圧縮」 を参照してください。変数値は、次の項目から任意の順序でカンマ区切りの圧縮アルゴリズム名のリストです (大/小文字は区別されません):
zlib
:zlib
圧縮アルゴリズムを使用する接続を許可します。zstd
:zstd
圧縮アルゴリズム (zstd 1.3) を使用する接続を許可します。uncompressed
: 圧縮解除された接続を許可します。 このアルゴリズム名がprotocol_compression_algorithms
値に含まれていない場合、サーバーは圧縮されていない接続を許可しません。 値に指定されている他のアルゴリズムを使用する圧縮接続のみが許可され、圧縮されていない接続へのフォールバックはありません。
zlib,zstd,uncompressed
のデフォルト値は、サーバーがすべての圧縮アルゴリズムを許可することを示します。詳細は、セクション4.2.8「接続圧縮制御」を参照してください。
-
システム変数 protocol_version
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer MySQL Server によって使用されるクライアント/サーバープロトコルのバージョン。
-
システム変数 proxy_user
スコープ セッション 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 現在のクライアントが別のユーザーのプロキシの場合、この変数はプロキシユーザーのアカウント名です。 そうでない場合、この変数は
NULL
です。 セクション6.2.18「プロキシユーザー」を参照してください。 -
システム変数 pseudo_slave_mode
スコープ セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean このシステム変数は、内部サーバー用です。
pseudo_slave_mode
は、現在処理しているサーバーより古いサーバーまたは新しいサーバーで発生したトランザクションの正しい処理を支援します。mysqlbinlog は、SQL ステートメントを実行する前にpseudo_slave_mode
の値を true に設定します。このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、
REPLICATION_APPLIER
権限 (セクション17.3.3「レプリケーション権限チェック」 を参照) または制限付きセッション変数の設定に十分な権限 (セクション5.1.9.1「システム変数権限」 を参照) が必要です。 ただし、この変数はユーザーが設定するためのものではなく、レプリケーションインフラストラクチャによって自動的に設定されることに注意してください。pseudo_slave_mode
は、準備された XA トランザクションの処理に次の影響を与えます。これらのトランザクションは、処理セッション (デフォルトでは、XA START
を発行するセッション) に対して連結または連結解除できます:true で、処理セッションが内部使用
BINLOG
ステートメントを実行した場合、XA トランザクションは、XA PREPARE
までのトランザクションの最初の部分が終了するとすぐにセッションから自動的にデタッチされるため、XA_RECOVER_ADMIN
権限を持つセッションでコミットまたはロールバックできます。false の場合、XA トランザクションは、そのセッションが存続しているかぎり処理セッションにアタッチされたままになり、その間、他のセッションはトランザクションをコミットできません。 準備されたトランザクションは、セッションが切断されるか、サーバーが再起動した場合にのみデタッチされます。
pseudo_slave_mode
は、original_commit_timestamp
レプリケーション遅延タイムスタンプおよびoriginal_server_version
システム変数に次の影響を与えます:true の場合、
original_commit_timestamp
またはoriginal_server_version
を明示的に設定しないトランザクションは別の不明なサーバーで発生しているとみなされるため、値 0(不明) がタイムスタンプとシステム変数の両方に割り当てられます。false の場合、
original_commit_timestamp
またはoriginal_server_version
を明示的に設定しないトランザクションは現在のサーバーで発生しているとみなされるため、現在のタイムスタンプと現在のサーバーバージョンがタイムスタンプとシステム変数に割り当てられます。
MySQL 8.0.14 以降では、
pseudo_slave_mode
は、サポートされていない (削除または不明な) SQL モードを設定するステートメントの処理に次の影響を与えます:true の場合、サーバーはサポートされていないモードを無視し、警告を生成します。
false の場合、サーバーは
ER_UNSUPPORTED_SQL_MODE
でステートメントを拒否します。
-
システム変数 pseudo_thread_id
スコープ セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer この変数は内部サーバーで使用します。
警告pseudo_thread_id
システム変数のセッション値を変更すると、CONNECTION_ID()
関数によって返される値が変更されます。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
コマンド行形式 --query-alloc-block-size=#
システム変数 query_alloc_block_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 8192
最小値 1024
最大値 4294967295
単位 bytes
ブロックサイズ 1024
ステートメントの解析および実行中に作成されたオブジェクトに割り当てられるメモリーブロックの割当てサイズ (バイト)。 メモリーのフラグメント化について問題がある場合、このパラメータを増やすと役立つ場合があります。
-
コマンド行形式 --query-prealloc-size=#
システム変数 query_prealloc_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 8192
最小値 8192
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
ステートメントの解析および実行に使用される永続バッファのサイズ (バイト単位)。 このバッファーは、ステートメント間で解放されません。 複雑なクエリーを発行する場合、
query_prealloc_size
の値を大きくすると、クエリー実行操作時にサーバーがメモリー割り当てを実行する必要性が低くなるため、パフォーマンスの向上に役立つ場合があります。 -
システム変数 rand_seed1
スコープ セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer rand_seed1
およびrand_seed2
変数は、セッション変数としてのみ存在し、設定はできますが読み取ることはできません。 変数はSHOW VARIABLES
の出力に表示されますが、その値は表示されません。これらの変数の目的は、
RAND()
関数のレプリケーションをサポートすることです。RAND()
を起動するステートメントの場合、ソースはレプリカに 2 つの値を渡し、そこでランダム番号ジェネレータのシードに使用されます。 レプリカは、これらの値を使用して、レプリカ上のRAND()
がソースと同じ値を生成するように、rand_seed1
およびrand_seed2
のセッション変数を設定します。 -
rand_seed1
の説明を参照してください。 -
コマンド行形式 --range-alloc-block-size=#
システム変数 range_alloc_block_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 4096
最小値 4096
最大値 (64 ビットプラットフォーム) 18446744073709547520
最大値 4294967295
ブロックサイズ 1024
範囲最適化の実行時に割り当てられるブロックのサイズ (バイト単位)。
-
コマンド行形式 --range-optimizer-max-mem-size=#
システム変数 range_optimizer_max_mem_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 8388608
最小値 0
最大値 18446744073709551615
範囲オプティマイザのメモリー消費の制限。 値 0 は 「制限なし」を表します。 オプティマイザによって考慮される実行計画で範囲アクセス方法が使用されているが、オプティマイザはこの方法に必要なメモリー量が制限を超えると見積もった場合、計画を破棄し、他の計画を考慮します。 詳細は、範囲最適化のためのメモリー使用の制限を参照してください。
-
システム変数 rbr_exec_mode
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 STRICT
有効な値 IDEMPOTENT
STRICT
mysqlbinlog による内部使用。 この変数は、サーバーを
IDEMPOTENT
モードとSTRICT
モードの間で切り替えます。IDEMPOTENT
モードでは、mysqlbinlog によって生成されたBINLOG
ステートメントで重複キーおよびキーのないエラーが抑制されます。 このモードは、既存のデータと競合する原因となるサーバー上で行ベースのバイナリログを再生する場合に役立ちます。mysqlbinlog では、出力に次のように記述して--idempotent
オプションを指定すると、このモードが設定されます:SET SESSION RBR_EXEC_MODE=IDEMPOTENT;
MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
-
コマンド行形式 --read-buffer-size=#
システム変数 read_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 131072
最小値 8192
最大値 2147479552
MyISAM
テーブルの順次スキャンを実行する各スレッドは、スキャンする各テーブルにこのサイズ (バイト単位) のバッファーを割り当てます。 多くの順次スキャンを実行する場合、この値を増やした方がよい場合もあり、デフォルトは 131072 です。 この変数の値は 4K バイトの倍数にしてください。 4KB の倍数ではない値に設定すると、その値は 4KB の最も近い倍数に切り捨てられます。このオプションは、すべてのストレージエンジンの次のコンテキストでも使用されます:
ORDER BY
で行をソートするとき、インデックスを一時ファイル (一時テーブルではない) にキャッシュする場合。パーティションに一括挿入する場合。
ネストされたクエリーの結果をキャッシュする場合。
read_buffer_size
は、他のストレージエンジン固有の方法でも使用されます:MEMORY
テーブルのメモリーブロックサイズを決定します。MySQL 8.0.22 以降、
SELECT INTO DUMPFILE
およびSELECT INTO OUTFILE
ステートメントの実行時に使用されるバッファのread_buffer_size
の値のかわりにselect_into_buffer_size
の値が使用されます。さまざまな操作中でのメモリー使用についての詳細は、セクション8.12.3.1「MySQL のメモリーの使用方法」を参照してください。
-
コマンド行形式 --read-only[={OFF|ON}]
システム変数 read_only
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
read_only
システム変数が有効になっている場合、サーバーは、CONNECTION_ADMIN
権限 (または非推奨のSUPER
権限) を持つユーザー以外のクライアント更新を許可しません。 この変数はデフォルトでは無効になっています。サーバーは
super_read_only
システム変数 (デフォルトでは無効) もサポートしていますが、これには次の効果があります:super_read_only
が有効になっている場合、CONNECTION_ADMIN
またはSUPER
権限を持つユーザーであっても、サーバーはクライアントの更新を禁止します。super_read_only
をON
に設定すると、read_only
は暗黙的にON
に強制されます。read_only
をOFF
に設定すると、super_read_only
は暗黙的にOFF
に強制されます。
read_only
が有効な場合でも、サーバーは次の操作を許可します:サーバーがレプリカの場合、レプリケーションスレッドによって実行される更新。 レプリケーション設定では、レプリカサーバー上の
read_only
を有効にして、レプリカがクライアントからではなくレプリケーションソースサーバーからの更新のみを受け入れるようにすると便利です。現在のバイナリログファイルに存在しない実行されたトランザクションの GTID を格納するシステムテーブル
mysql.gtid_executed
に書き込みます。ANALYZE TABLE
ステートメントまたはOPTIMIZE TABLE
ステートメントの使用。 読取り専用モードの目的は、テーブルの構造または内容の変更を防ぐことです。 分析および最適化は、そのような変更の条件を備えていません。 これは、たとえば、読取り専用レプリカに対する整合性チェックを mysqlcheck --all-databases --analyze で実行できることを意味します。TEMPORARY
テーブルに対する操作。ログテーブル (
mysql.general_log
およびmysql.slow_log
) に挿入します。セクション5.4.1「一般クエリーログおよびスロークエリーログの出力先の選択」 を参照してください。UPDATE
またはTRUNCATE TABLE
操作などの「パフォーマンススキーマ」テーブルの更新。
レプリケーションソースサーバー上の
read_only
への変更は、複製サーバーにレプリケートされません。 この値は、ソースの設定とは無関係にレプリカサーバーに設定できます。read_only
の有効化の試行 (super_read_only
の有効化による暗黙的な試行を含む) には、次の条件が適用されます:試行は失敗し、(
LOCK TABLES
で取得した) 明示的なロックがあるか、保留中のトランザクションがある場合はエラーが発生します。ロックが解放されてステートメントおよびトランザクションが終了するまで、他のクライアントに進行中のステートメント、アクティブな
LOCK TABLES WRITE
または進行中のコミットがある間、試行はブロックされます。read_only
の有効化の試行が保留されているとき、ほかのクライアントによるテーブルロックあるいはトランザクションの開始のリクエストもまたread_only
が設定されるまでブロックされます。メタデータロックを保持するアクティブなトランザクションがある場合、そのトランザクションが終了するまで試行はブロックされます。
グローバル読み取りロック (
FLUSH TABLES WITH READ LOCK
で取得) にはテーブルロックが含まれていないため、read_only
を有効化できます。
-
コマンド行形式 --read-rnd-buffer-size=#
システム変数 read_rnd_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 262144
最小値 1
最大値 2147483647
この変数は、
MyISAM
テーブルからの読み取り、ストレージエンジン、および Multi-Range Read の最適化のために使用されます。キーソート操作のあとで、
MyISAM
テーブルの行をソート順に読み取るとき、ディスクシークを回避するため行はこのバッファーから読み取られます。 セクション8.2.1.16「ORDER BY の最適化」を参照してください。 この変数を大きい値に設定すると、ORDER BY
のパフォーマンスを大幅に向上できます。 ただし、これは各クライアントに割り当てられるバッファーであるため、グローバル変数を大きい値に設定しないでください。 代わりに、大規模なクエリーを実行する必要があるクライアント内からのみセッション変数を変更します。さまざまな操作中でのメモリー使用についての詳細は、セクション8.12.3.1「MySQL のメモリーの使用方法」を参照してください。 Multi-Range Read の最適化については、セクション8.2.1.11「Multi-Range Read の最適化」を参照してください。
-
コマンド行形式 --regexp-stack-limit=#
システム変数 regexp_stack_limit
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 8000000
最小値 0
最大値 2147483647
REGEXP_LIKE()
および同様の関数によって実行される正規表現照合操作に使用される内部スタックの最大使用可能メモリー (バイト)。セクション12.8.2「正規表現」 を参照してください。 -
コマンド行形式 --regexp-time-limit=#
システム変数 regexp_time_limit
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 32
最小値 0
最大値 2147483647
REGEXP_LIKE()
および同様の関数によって実行される正規表現照合操作の時間制限 (セクション12.8.2「正規表現」 を参照)。 この制限は、照合エンジンによって実行されるステップの最大許容数として表されるため、実行時間に間接的にのみ影響します。 通常はミリ秒の順序で表示されます。 -
導入 8.0.19 システム変数 require_row_format
スコープ セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、レプリケーションおよび mysqlbinlog による内部サーバーの使用に使用されます。 セッションで実行される DML イベントは、行ベースのバイナリロギング形式でエンコードされたイベントのみに制限され、一時テーブルは作成できません。 制限に従わないクエリーは失敗します。
このシステム変数のセッション値を
ON
に設定する場合、権限は必要ありません。 このシステム変数のセッション値をOFF
に設定することは制限された操作であり、セッションユーザーには制限されたセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。 -
コマンド行形式 --require-secure-transport[={OFF|ON}]
システム変数 require_secure_transport
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
なんらかの形式のセキュアトランスポートを使用するためにサーバーへのクライアント接続が必要かどうか。 この変数が有効な場合、サーバーは TLS/SSL を使用して暗号化された TCP/IP 接続、またはソケットファイル (Unix の場合) または共有メモリー (Windows の場合) を使用する接続のみを許可します。 サーバーはセキュアでない接続試行を拒否し、
ER_SECURE_TRANSPORT_REQUIRED
エラーで失敗します。この機能は、優先されるアカウントごとの SSL 要件を補完します。 たとえば、アカウントが
REQUIRE SSL
で定義されている場合、require_secure_transport
を有効にしても、そのアカウントを使用して Unix ソケットファイルを使用して接続することはできません。サーバーでセキュアなトランスポートを使用できない場合があります。 たとえば、Windows 上のサーバーは、SSL 証明書またはキーファイルを指定せずに
shared_memory
システム変数を無効にして起動した場合、セキュアなトランスポートをサポートしません。 これらの条件下で、起動時にrequire_secure_transport
を有効にしようとすると、サーバーはエラーログにメッセージを書き込み、終了します。 実行時に変数を有効にしようとすると、ER_NO_SECURE_TRANSPORTS_CONFIGURED
エラーで失敗します。暗号化された接続の必須としての構成も参照してください。
-
システム変数 resultset_metadata
スコープ セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 FULL
有効な値 FULL
NONE
メタデータ転送がオプションの接続の場合、クライアントは
resultset_metadata
システム変数を設定して、サーバーが結果セットのメタデータを返すかどうかを制御します。 許可される値は、FULL
(すべてのメタデータを返します。これがデフォルトです) およびNONE
(メタデータを返しません) です。メタデータ以外の接続の場合、
resultset_metadata
をNONE
に設定するとエラーが発生します。結果セットのメタデータ転送の管理の詳細は、Optional Result Set Metadata を参照してください。
-
secondary_engine_cost_threshold
導入 8.0.16 システム変数 secondary_engine_cost_threshold
スコープ セッション 動的 はい SET_VAR
ヒントの適用はい 型 数値 デフォルト値 100000.000000
最小値 0
最大値 DBL_MAX (maximum double value)
セカンダリエンジンへのクエリーオフロードのオプティマイザコストしきい値。
HeatWave で使用します。 MySQL HeatWave User Guide を参照してください。
-
コマンド行形式 --schema-definition-cache=#
システム変数 schema_definition_cache
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 256
最小値 256
最大値 524288
ディクショナリオブジェクトキャッシュに保持できるスキーマ定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。
未使用のスキーマ定義オブジェクトは、使用中の数が
schema_definition_cache
で定義されている容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。0
の設定は、スキーマ定義オブジェクトが使用中にディクショナリオブジェクトキャッシュにのみ保持されることを意味します。詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
コマンド行形式 --secure-file-priv=dir_name
システム変数 secure_file_priv
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 platform specific
有効な値 empty string
dirname
NULL
この変数は、
LOAD DATA
ステートメント、SELECT ... INTO OUTFILE
ステートメントおよびLOAD_FILE()
関数によって実行される操作など、データインポートおよびエクスポート操作の影響を制限するために使用されます。 これらの操作は、FILE
権限を持つユーザーにのみ許可されます。secure_file_priv
は、次のように設定できます:空の場合、変数は無効です。 これはセキュアな設定ではありません。
ディレクトリの名前に設定すると、サーバーはインポートおよびエクスポート操作をそのディレクトリ内のファイルでのみ機能するように制限します。 ディレクトリが存在する必要があります。サーバーは作成しません。
NULL
に設定されている場合、サーバーはインポートおよびエクスポート操作を無効にします。
次のテーブルに示すように、デフォルト値はプラットフォーム固有であり、
INSTALL_LAYOUT
CMake オプションの値によって異なります。 ソースからビルドする場合にデフォルトのsecure_file_priv
値を明示的に指定するには、INSTALL_SECURE_FILE_PRIVDIR
CMake オプションを使用します。INSTALL_LAYOUT
値デフォルトの secure_file_priv
値STANDALONE
empty DEB
,RPM
,SVR4
/var/lib/mysql-files
それ以外の場合 CMAKE_INSTALL_PREFIX
値の下のmysql-files
サーバーは起動時に
secure_file_priv
の値をチェックし、値がセキュアでない場合はエラーログに警告を書き込みます。NULL
以外の値は、空の場合、値がデータディレクトリまたはそのサブディレクトリである場合、あるいはすべてのユーザーがアクセスできるディレクトリである場合、セキュアでないとみなされます。secure_file_priv
が存在しないパスに設定されている場合、サーバーはエラーログにエラーメッセージを書き込み、終了します。 -
コマンド行形式 --select-into-buffer-size=#
導入 8.0.22 システム変数 select_into_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 131072
最小値 8192
最大値 2147479552
単位 bytes
SELECT INTO OUTFILE
またはSELECT INTO DUMPFILE
を使用して、バックアップの作成、データ移行またはその他の目的でデータを 1 つ以上のファイルにダンプする場合、書込みをバッファリングしてから、ディスクまたは他のストレージデバイスへの大量の書込み I/O アクティビティのバーストをトリガーし、待機時間の影響を受けやすい他のクエリーを停止することがよくあります。 この変数を使用すると、ストレージデバイスにデータを書き込むために使用されるバッファーのサイズを制御して、バッファーの同期が発生するタイミングを決定できるため、記述した種類の書き込みストールが発生しないようにできます。select_into_buffer_size
は、read_buffer_size
に設定された値をオーバーライドします。(select_into_buffer_size
とread_buffer_size
のデフォルト値、最大値および最小値は同じです。)select_into_disk_sync_delay
を使用して、後で同期が発生するたびに監視されるタイムアウトを設定することもできます。 -
コマンド行形式 --select-into-disk-sync={ON|OFF}
導入 8.0.22 システム変数 select_into_disk_sync
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
有効な値 OFF
ON
ON
で設定すると、select_into_buffer_size
を使用して長時間実行されるSELECT INTO OUTFILE
ステートメントまたはSELECT INTO DUMPFILE
ステートメントによる出力ファイルへの書込みのバッファ同期が有効になります。 -
コマンド行形式 --select-into-disk-sync-delay=#
導入 8.0.22 システム変数 select_into_disk_sync_delay
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 0
最小値 0
最大値 31536000
単位 milliseconds
長時間実行される
SELECT INTO OUTFILE
ステートメントまたはSELECT INTO DUMPFILE
ステートメントによる出力ファイルへの書込みのバッファ同期がselect_into_disk_sync
で有効になっている場合、この変数は同期後のオプションの遅延 (ミリ秒) を設定します。0
(デフォルト) は遅延がないことを意味します。 -
コマンド行形式 --session-track-gtids=value
システム変数 session_track_gtids
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 OFF
有効な値 OFF
OWN_GTID
ALL_GTIDS
サーバーが GTID をクライアントに返すかどうかを制御し、クライアントが GTID を使用してサーバーの状態を追跡できるようにします。 変数値に応じて、各トランザクションの実行の終了時に、サーバーの GTID が取得され、確認の一環としてクライアントに返されます。
session_track_gtids
に使用可能な値は次のとおりです:OFF
: サーバーは GTID をクライアントに返しません。 これはデフォルトです。OWN_GTID
: サーバーは、最後の確認応答以降に現在のセッションでこのクライアントによって正常にコミットされたすべてのトランザクションの GTID を返します。 通常、これは最後にコミットされたトランザクションの単一 GTID ですが、単一のクライアント要求によって複数のトランザクションが発生した場合、サーバーは関連する GTID をすべて含む GTID セットを返します。ALL_GTIDS
: サーバーは、トランザクションが正常にコミットされた時点で読み取るgtid_executed
システム変数のグローバル値を返します。 この GTID セットには、コミットされたばかりのトランザクションの GTID だけでなく、任意のクライアントによってサーバー上でコミットされたすべてのトランザクションが含まれ、現在確認されているトランザクションがコミットされた時点以降にコミットされたトランザクションを含めることができます。
session_track_gtids
はトランザクションコンテキスト内で設定できません。セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
コマンド行形式 --session-track-schema[={OFF|ON}]
システム変数 session_track_schema
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
現在のセッション内でデフォルトスキーマ (データベース) が設定されたときにサーバーが追跡し、スキーマ名を使用可能にするようクライアントに通知するかどうかを制御します。
スキーマ名トラッカが有効な場合、新しいスキーマ名が古いスキーマ名と同じであっても、デフォルトスキーマが設定されるたびに名前通知が発生します。
セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
コマンド行形式 --session-track-state-change[={OFF|ON}]
システム変数 session_track_state_change
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
現在のセッションの状態に対する変更をサーバーが追跡し、状態の変更が発生したときにクライアントに通知するかどうかを制御します。 クライアントセッションステートの次の属性について変更をレポートできます:
デフォルトスキーマ (データベース)。
システム変数のセッション固有の値。
ユーザー定義変数。
一時テーブル
プリペアドステートメント。
セッション状態トラッカが有効になっている場合、新しい属性値が古い属性値と同じであっても、追跡対象のセッション属性を含む変更ごとに通知が発生します。 たとえば、ユーザー定義変数を現在の値に設定すると、通知されます。
session_track_state_change
変数は、変更が発生した場合の通知のみを制御し、変更内容は制御しません。 たとえば、状態変更通知は、デフォルトスキーマが設定されている場合や追跡されているセッションシステム変数が割り当てられている場合に発生しますが、通知にはスキーマ名または変数値は含まれません。 スキーマ名またはセッションシステム変数の値の通知を受信するには、それぞれsession_track_schema
またはsession_track_system_variables
システム変数を使用します。注記session_track_state_change
自体に値を割り当てることは状態変更とはみなされず、そのようにはレポートされません。 ただし、その名前がsession_track_system_variables
の値にリストされている場合、その名前への割当てによって新しい値が通知されます。セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
session_track_system_variables
コマンド行形式 --session-track-system-variables=#
システム変数 session_track_system_variables
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 time_zone, autocommit, character_set_client, character_set_results, character_set_connection
サーバーがセッションシステム変数への割当てを追跡し、割り当てられた各変数の名前と値をクライアントに通知するかどうかを制御します。 変数値は、割当てを追跡する変数のカンマ区切りリストです。 デフォルトでは、通知は
time_zone
,autocommit
,character_set_client
,character_set_results
およびcharacter_set_connection
に対して有効になっています。 (後者の 3 つの変数は、SET NAMES
の影響を受ける変数です。)*
という特別な値を指定すると、サーバーはすべてのセッション変数への割当てを追跡します。 指定する場合、この値は特定のシステム変数名なしで単独で指定する必要があります。セッション変数割当ての通知を無効にするには、
session_track_system_variables
を空の文字列に設定します。セッションシステム変数の追跡が有効になっている場合、新しい値が古い値と同じであっても、追跡対象のセッション変数へのすべての割当てに対して通知が行われます。
セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
session_track_transaction_info
コマンド行形式 --session-track-transaction-info=value
システム変数 session_track_transaction_info
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 OFF
有効な値 OFF
STATE
CHARACTERISTICS
サーバーが現在のセッション内のトランザクションの状態と特性を追跡し、この情報を使用可能にするようクライアントに通知するかどうかを制御します。 次の
session_track_transaction_info
値を使用できます:OFF
: トランザクション状態トラッキングを無効にします。 これはデフォルトです。STATE
: 特性トラッキングなしでトランザクション状態トラッキングを有効にします。 状態トラッキングを使用すると、クライアントは、トランザクションが進行中かどうか、およびトランザクションをロールバックせずに別のセッションに移動できるかどうかを判断できます。-
CHARACTERISTICS
: 特性トラッキングを含むトランザクション状態トラッキングを有効にします。 特性トラッキングを使用すると、クライアントは、元のセッションと同じ特性を持つように、別のセッションでトランザクションを再開する方法を決定できます。 この目的に関連する特性は次のとおりです:ISOLATION LEVEL READ ONLY READ WRITE WITH CONSISTENT SNAPSHOT
クライアントがトランザクションを別のセッションに安全に再配置するには、トランザクションの状態だけでなく、トランザクションの特性も追跡する必要があります。 また、クライアントは、
transaction_isolation
およびtransaction_read_only
システム変数を追跡して、セッションのデフォルトを正しく決定する必要があります。 (これらの変数を追跡するには、session_track_system_variables
システム変数の値にリストします。)セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
sha256_password_auto_generate_rsa_keys
コマンド行形式 --sha256-password-auto-generate-rsa-keys[={OFF|ON}]
システム変数 sha256_password_auto_generate_rsa_keys
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
サーバーはこの変数を使用して、RSA 秘密/公開鍵ペアファイルがまだ存在しない場合に、それらをデータディレクトリに自動生成するかどうかを決定します。
これらの条件がすべて満たされている場合、サーバーは起動時に RSA 秘密キー/公開キーのペアファイルをデータディレクトリに自動的に生成:
sha256_password_auto_generate_rsa_keys
またはcaching_sha2_password_auto_generate_rsa_keys
システム変数が有効になっており、RSA オプションが指定されていません。RSA ファイルがデータディレクトリにありません。 これらのキーペアファイルを使用すると、sha256_password
またはcaching_sha2_password
プラグインによって認証されたアカウントに対して、暗号化されていない RSA 接続を使用したセキュアなパスワード交換が可能になります。セクション6.4.1.3「SHA-256 プラガブル認証」 および セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。RSA ファイルの自動生成の詳細 (ファイル名や特性など) は、セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」 を参照してください
auto_generate_certs
システム変数は関連していますが、SSL を使用したセキュアな接続に必要な SSL 証明書およびキーファイルの自動生成を制御します。 -
sha256_password_private_key_path
コマンド行形式 --sha256-password-private-key-path=file_name
システム変数 sha256_password_private_key_path
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 private_key.pem
この変数の値は、
sha256_password
認証プラグインの RSA 秘密キーファイルのパス名です。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。重要このファイルは秘密鍵を格納しているため、MySQL Server のみがファイルを読み取りできるようにファイルのアクセスモードを制限します。
sha256_password
については、セクション6.4.1.3「SHA-256 プラガブル認証」を参照してください。 -
コマンド行形式 --sha256-password-proxy-users[={OFF|ON}]
システム変数 sha256_password_proxy_users
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、
sha256_password
組込み認証プラグインがプロキシユーザーをサポートするかどうかを制御します。check_proxy_users
システム変数が有効になっていないかぎり、効果はありません。 ユーザープロキシの詳細は、セクション6.2.18「プロキシユーザー」 を参照してください。 -
sha256_password_public_key_path
コマンド行形式 --sha256-password-public-key-path=file_name
システム変数 sha256_password_public_key_path
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 public_key.pem
この変数の値は、
sha256_password
認証プラグインの RSA 公開キーファイルのパス名です。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。 このファイルは公開鍵を格納しているため、クライアントユーザーに対してコピーを自由に配布できます。 (RSA パスワード暗号化を使用してサーバーに接続するときに公開鍵を明示的に指定するクライアントは、サーバーで使用されるものと同じ公開鍵を使用する必要があります。)クライアントが RSA 公開キーを指定する方法など、
sha256_password
の詳細は、セクション6.4.1.3「SHA-256 プラガブル認証」 を参照してください。 -
コマンド行形式 --shared-memory[={OFF|ON}]
システム変数 shared_memory
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ プラットフォーム固有 Windows 型 Boolean デフォルト値 OFF
(Windows のみ。) サーバーが共有メモリー接続を許可するかどうか。
-
コマンド行形式 --shared-memory-base-name=name
システム変数 shared_memory_base_name
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ プラットフォーム固有 Windows 型 文字列 デフォルト値 MYSQL
(Windows のみ。) 共有メモリー接続に使用する共有メモリーの名前。 これは、単一の物理マシン上で複数の MySQL インスタンスを実行する場合に便利です。 デフォルト名は
MYSQL
です。 名前では大文字と小文字が区別されます。この変数は、共有メモリー接続をサポートするために
shared_memory
システム変数を有効にしてサーバーを起動した場合にのみ適用されます。 -
show_create_table_skip_secondary_engine
コマンド行形式 --show-create-table-skip-secondary-engine[={OFF|ON}]
導入 8.0.18 システム変数 show_create_table_skip_secondary_engine
スコープ セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
show_create_table_skip_secondary_engine
を有効にすると、SECONDARY ENGINE
句がSHOW CREATE TABLE
出力および mysqldump ユーティリティによってダンプされたCREATE TABLE
ステートメントから除外されます。mysqldump には
--show-create-skip-secondary-engine
オプションが用意されています。 指定すると、ダンプ操作中にshow_create_table_skip_secondary_engine
システム変数が有効になります。show_create_table_skip_secondary_engine
変数をサポートしていない MySQL 8.0.18 より前のリリースで--show-create-skip-secondary-engine
オプションを使用して mysqldump 操作を試行すると、エラーが発生します。HeatWave で使用します。 MySQL HeatWave User Guide を参照してください。
-
コマンド行形式 --show-create-table-verbosity[={OFF|ON}]
システム変数 show_create_table_verbosity
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
行フォーマットがデフォルトフォーマットの場合、
SHOW CREATE TABLE
では通常、ROW_FORMAT
テーブルオプションは表示されません。 この変数を有効にすると、SHOW CREATE TABLE
では、デフォルトフォーマットであるかどうかに関係なく、ROW_FORMAT
が表示されます。 -
コマンド行形式 --show-old-temporals[={OFF|ON}]
非推奨 はい システム変数 show_old_temporals
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
SHOW CREATE TABLE
出力に、5.6.4 より前の形式で検出された時間的カラムにフラグを付けるコメントが含まれるかどうか (TIME
、DATETIME
およびTIMESTAMP
カラムで小数秒精度はサポートされません)。 この変数はデフォルトでは無効になっています。 有効な場合、SHOW CREATE TABLE
出力は次のようになります:CREATE TABLE `mytbl` ( `ts` timestamp /* 5.5 binary format */ NOT NULL DEFAULT CURRENT_TIMESTAMP, `dt` datetime /* 5.5 binary format */ DEFAULT NULL, `t` time /* 5.5 binary format */ DEFAULT NULL ) DEFAULT CHARSET=utf8mb4
INFORMATION_SCHEMA.COLUMNS
テーブルのCOLUMN_TYPE
カラムの出力も同様に影響を受けます。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
コマンド行形式 --skip-external-locking[={OFF|ON}]
システム変数 skip_external_locking
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
これは、mysqld が外部ロック (システムロック) を使用する場合は
OFF
で、外部ロックが無効な場合はON
です。 これは、MyISAM
テーブルアクセスにのみ影響します。この変数は、
--external-locking
または--skip-external-locking
オプションによって設定されます。 外部ロックはデフォルトで無効になっています。外部ロックは
MyISAM
テーブルアクセスにのみ影響します。 使用できるまたはできない状況も含めた詳細情報については、セクション8.11.5「外部ロック」を参照してください。 -
コマンド行形式 --skip-name-resolve[={OFF|ON}]
システム変数 skip_name_resolve
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
クライアント接続のチェック時にホスト名を解決するかどうか。 この変数が
OFF
の場合、mysqld はクライアント接続のチェック時にホスト名を解決します。ON
の場合、mysqld は IP 番号のみを使用します。この場合、付与テーブル内のすべてのHost
カラム値は IP アドレスである必要があります。 セクション5.1.12.3「DNS ルックアップとホストキャッシュ」を参照してください。システムのネットワーク構成およびアカウントの
Host
値によっては、クライアントは--host=127.0.0.1
や--host=::1
などの明示的な--host
オプションを使用して接続する必要がある場合があります。ホスト
127.0.0.1
への接続を試みると、通常localhost
アカウントに解決します。 ただし、サーバーがskip_name_resolve
を有効にして実行されている場合、これは失敗します。 これを行う場合は、接続を受け入れることができるアカウントが存在することを確認します。 たとえば、--host=127.0.0.1
または--host=::1
を使用してroot
として接続できるようにするには、次のアカウントを作成します:CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password'; CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
-
コマンド行形式 --skip-networking[={OFF|ON}]
システム変数 skip_networking
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、サーバーが TCP/IP 接続を許可するかどうかを制御します。 デフォルトでは無効になっています (TCP 接続を許可します)。 有効な場合、サーバーはローカル (TCP/IP 以外) 接続のみを許可し、mysqld とのすべての対話は、名前付きパイプ、共有メモリー (Windows の場合) または Unix ソケットファイル (Unix の場合) を使用して行う必要があります。 このオプションは、ローカルクライアントのみが許可されているシステムで強く推奨します。 セクション5.1.12.3「DNS ルックアップとホストキャッシュ」を参照してください。
--skip-grant-tables
を使用してサーバーを起動すると認証チェックが無効になるため、この場合、サーバーはskip_networking
を有効にしてリモート接続も無効にします。 -
コマンド行形式 --skip-show-database
システム変数 skip_show_database
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ これは、
SHOW DATABASES
権限を持っていないユーザーがSHOW DATABASES
ステートメントを使用することを防ぎます。 ほかのユーザーに属するデータベースをユーザーが表示できることに不安がある場合に、セキュリティーを高めることができます。 この効果はSHOW DATABASES
権限によって異なります。変数の値がON
の場合、SHOW DATABASES
ステートメントはSHOW DATABASES
権限を持つユーザーにのみ許可され、ステートメントはすべてのデータベース名を表示します。 値がOFF
の場合、SHOW DATABASES
はすべてのユーザーに許可されますが、ユーザーがSHOW DATABASES
またはほかの権限を持つデータベースの名前のみが表示されます。注意静的グローバル権限はすべてのデータベースに対する権限とみなされるため、静的グローバル権限を使用すると、ユーザーは、部分的な取消しによってデータベースレベルで制限されているデータベースを除き、
SHOW DATABASES
を使用するか、INFORMATION_SCHEMA
のSCHEMATA
テーブルを調べることで、すべてのデータベース名を表示できます。 -
コマンド行形式 --slow-launch-time=#
システム変数 slow_launch_time
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 2
スレッドを作成する時間がこの秒数より長くかかると、サーバーは
Slow_launch_threads
ステータス変数を増やします。 -
コマンド行形式 --slow-query-log[={OFF|ON}]
システム変数 slow_query_log
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
スロークエリーログを有効にするかどうか。 値が 0 (または
OFF
) の場合はログを無効にし、1 (またはON
) の場合はログを有効にします。 ログ出力先はlog_output
システム変数によって制御され、この値をNONE
にした場合はログが有効になっていてもログエントリは書き込まれません。「スロー」の程度は、
long_query_time
変数の値によって決定されます。 セクション5.4.5「スロークエリーログ」を参照してください。 -
コマンド行形式 --slow-query-log-file=file_name
システム変数 slow_query_log_file
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 host_name-slow.log
スロークエリーログファイルの名前。 デフォルト値は
ですが、初期値はhost_name
-slow.log--slow_query_log_file
オプションを使用すると変更できます。 -
コマンド行形式 --socket={file_name|pipe_name}
システム変数 socket
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 (Windows) MySQL
デフォルト値 (その他) /tmp/mysql.sock
Unix プラットフォームでは、この変数は、ローカルクライアント接続に使用されるソケットファイルの名前です。 デフォルトは
/tmp/mysql.sock
です。 (一部の配布形式ではディレクトリが異なる場合があり、たとえば RPM の場合は/var/lib/mysql
です。)Windows では、この変数は、ローカルクライアント接続に使用される名前付きパイプの名前です。 デフォルト値は
MySQL
です (大/小文字は区別されません)。 -
コマンド行形式 --sort-buffer-size=#
システム変数 sort_buffer_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 262144
最小値 32768
最大値 (Windows) 4294967295
最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615
最大値 (その他, 32 ビットプラットフォーム) 4294967295
ソートを実行する必要がある各セッションは、このサイズのバッファを割り当てます。
sort_buffer_size
はどのストレージエンジンにも固有ではなく、最適化の一般的な方法で適用されます。 少なくとも、sort_buffer_size
値はソートバッファー内の 15 個のタプルを収容できる十分な大きさである必要があります。 また、max_sort_length
の値を増やすには、sort_buffer_size
の値を増やす必要がある場合があります。 詳細は、セクション8.2.1.16「ORDER BY の最適化」を参照してくださいSHOW GLOBAL STATUS
の出力に表示される秒あたりのSort_merge_passes
の数が多い場合、sort_buffer_size
値を増やすことで、クエリー最適化またはインデックスの改善によって改善できないORDER BY
またはGROUP BY
操作を高速化することを検討できます。オプティマイザは、必要な領域の量を計算しようとしますが、制限まで割り当てることができます。 必要以上に大きく設定すると、ソートを実行するほとんどのクエリーがグローバルに遅くなります。 これはセッション設定として増やし、かつ大きいサイズを必要とするセッションに制限することを推奨します。 Linux の場合、256K バイトおよび 2M バイトのしきい値があり、それより大きい値にするとメモリー割り当てが著しく低速になるため、これらのいずれかの値より低くすることを検討してください。 実験して、ワークロードに最適な値を見つけてください。 セクションB.3.3.5「MySQL が一時ファイルを格納する場所」を参照してください。
許可される
sort_buffer_size
の最大の設定値は 4G バイト − 1 です。 64 ビットプラットフォームの場合は大きい値が許可されます (64 ビットの Windows の場合は例外で、大きい値は 4G バイト − 1 に切り捨てられて警告が出ます)。 -
システム変数 sql_auto_is_null
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
この変数が有効な場合、自動的に生成された
AUTO_INCREMENT
値を正常に挿入するステートメントの後に、次の形式のステートメントを発行してその値を検索できます:SELECT * FROM tbl_name WHERE auto_col IS NULL
ステートメントが行を返す場合、返される値は
LAST_INSERT_ID()
関数を呼び出した場合と同じです。 複数行の挿入後の戻り値などについての詳細は、セクション12.16「情報関数」を参照してください。AUTO_INCREMENT
値を正常に挿入できなかった場合、SELECT
ステートメントは行を返しません。IS NULL
比較を使用してAUTO_INCREMENT
値を取得する動作は、Access などの一部の ODBC プログラムによって使用されます。 Obtaining Auto-Increment Valuesを参照してください。 この動作は、sql_auto_is_null
をOFF
に設定することで無効にできます。MySQL 8.0.16 より前は、
WHERE
からauto_col
IS NULLWHERE
への変換はステートメントの実行時にのみ実行されていたため、実行中のauto_col
= LAST_INSERT_ID()sql_auto_is_null
の値によってクエリーが変換されたかどうかが判断されました。 MySQL 8.0.16 以降では、ステートメントの準備中に変換が実行されます。sql_auto_is_null
のデフォルト値はOFF
です。 -
システム変数 sql_big_selects
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 ON
OFF
に設定されている場合、MySQL は、実行に非常に時間がかかる可能性が高いSELECT
ステートメント (つまり、オプティマイザが調査対象の行数がmax_join_size
の値を超えていると見積もるステートメント) を中断します。 これは、推奨されないWHERE
ステートメントが発行されたときに便利です。 新しい接続のデフォルト値はON
で、すべてのSELECT
ステートメントが許可されます。max_join_size
システム変数をDEFAULT
以外の値に設定すると、sql_big_selects
はOFF
に設定されます。 -
システム変数 sql_buffer_result
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
有効にすると、
sql_buffer_result
はSELECT
ステートメントの結果を一時テーブルに強制的に配置します。 これは、MySQL でテーブルロックを早期に解放するのに役立ち、クライアントに結果を送信するのに長い時間がかかる場合に適していることがあります。 デフォルト値はOFF
です。 -
システム変数 sql_log_off
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
有効な値 OFF
(ロギングの有効化)ON
(ロギングの無効化)この変数は、一般クエリーログへのロギングを現在のセッションで無効にするかどうかを制御します (一般クエリーログ自体が有効になっていると仮定します)。 デフォルト値は
OFF
です (つまり、ロギングを有効にします)。 現在のセッションの一般クエリーロギングを無効または有効にするには、セッションsql_log_off
変数をON
またはOFF
に設定します。このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
コマンド行形式 --sql-mode=name
システム変数 sql_mode
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Set デフォルト値 ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
有効な値 ALLOW_INVALID_DATES
ANSI_QUOTES
ERROR_FOR_DIVISION_BY_ZERO
HIGH_NOT_PRECEDENCE
IGNORE_SPACE
NO_AUTO_VALUE_ON_ZERO
NO_BACKSLASH_ESCAPES
NO_DIR_IN_CREATE
NO_ENGINE_SUBSTITUTION
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
TIME_TRUNCATE_FRACTIONAL
現在のサーバー SQL モードで、動的に設定できます。 詳細は、セクション5.1.11「サーバー SQL モード」を参照してください。
注記MySQL インストールプログラムはインストールプロセス中に SQL モードを構成することがあります。
SQL モードがデフォルトまたは期待されているモードと異なる場合、サーバーが起動時に読み取るオプションファイル内の設定を確認してください。
-
システム変数 sql_notes
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
有効 (デフォルト) にすると、
Note
レベルの診断によってwarning_count
が増分され、サーバーによって記録されます。 無効にした場合、Note
診断ではwarning_count
が増分されず、サーバーでは記録されません。mysqldump には、ダンプファイルをリロードしてもリロード操作の整合性に影響しないイベントの警告が生成されないように、この変数を無効にする出力が含まれています。 -
システム変数 sql_quote_show_create
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
有効 (デフォルト) にすると、サーバーは
SHOW CREATE TABLE
およびSHOW CREATE DATABASE
ステートメントの識別子を引用符で囲みます。 使用不可の場合、見積は使用不可になります。 このオプションはデフォルトで有効化されているため、引用が必要な識別子に対してレプリケーションが機能します。 セクション13.7.7.10「SHOW CREATE TABLE ステートメント」およびセクション13.7.7.6「SHOW CREATE DATABASE ステートメント」を参照してください。 -
コマンド行形式 --sql-require-primary-key[={OFF|ON}]
導入 8.0.13 システム変数 sql_require_primary_key
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
新しいテーブルを作成するステートメントまたは既存のテーブルの構造を変更するステートメントが、テーブルに主キーがあるという要件を強制するかどうか。
このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
この変数を有効にすると、テーブルに主キーがない場合に発生する可能性のある行ベースのレプリケーションでのパフォーマンスの問題を回避できます。 テーブルに主キーがなく、更新または削除によって複数の行が変更されるとします。 レプリケーションソースサーバーでは、この操作は単一のテーブルスキャンを使用して実行できますが、行ベースのレプリケーションを使用してレプリケートすると、レプリカで変更される行ごとにテーブルスキャンが行われます。 主キーの場合、これらのテーブルスキャンは行われません。
sql_require_primary_key
は実テーブルとTEMPORARY
テーブルの両方に適用され、その値に対する変更はレプリカサーバーにレプリケートされます。 MySQL 8.0.18 では、レプリケーションに参加できるストレージエンジンにのみ適用されます。有効にすると、
sql_require_primary_key
には次の効果があります:主キーのない新しいテーブルを作成しようとすると、エラーで失敗します。 これには、
CREATE TABLE ... LIKE
が含まれます。CREATE TABLE
部分に主キー定義が含まれていないかぎり、CREATE TABLE ... SELECT
も含まれます。-
既存のテーブルから主キーを削除しようとすると、エラーで失敗します。ただし、同じ
ALTER TABLE
ステートメントで主キーを削除して主キーを追加することはできません。テーブルに
UNIQUE NOT NULL
インデックスも含まれている場合でも、主キーの削除は失敗します。 主キーのないテーブルをインポートしようとすると、エラーで失敗します。
CHANGE REPLICATION SOURCE TO
ステートメント (MySQL 8.0.23 の場合) またはCHANGE MASTER TO
ステートメント (MySQL 8.0.23 の場合) のREQUIRE_TABLE_PRIMARY_KEY_CHECK
オプションを使用すると、レプリカは主キーチェック用の独自のポリシーを選択できます。 レプリケーションチャネルのオプションがON
に設定されている場合、レプリカはレプリケーション操作で常にsql_require_primary_key
システム変数に値ON
を使用し、主キーが必要です。 このオプションがOFF
に設定されている場合、レプリカはレプリケーション操作でsql_require_primary_key
システム変数に常に値OFF
を使用するため、ソースで必要な場合でも主キーは必要ありません。REQUIRE_TABLE_PRIMARY_KEY_CHECK
オプションがSTREAM
(デフォルト) に設定されている場合、レプリカは各トランザクションのソースからレプリケートされた値を使用します。REQUIRE_TABLE_PRIMARY_KEY_CHECK
オプションのSTREAM
設定では、レプリケーションチャネルに権限チェックが使用されている場合、PRIVILEGE_CHECKS_USER
アカウントには、sql_require_primary_key
システム変数のセッション値を設定できるように、制限されたセッション変数を設定するのに十分な権限が必要です。ON
またはOFF
の設定では、アカウントにこれらの権限は必要ありません。 詳細は、セクション17.3.3「レプリケーション権限チェック」を参照してください。 -
システム変数 sql_safe_updates
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 OFF
この変数を有効にすると、
WHERE
句またはLIMIT
句でキーを使用しないUPDATE
およびDELETE
ステートメントでエラーが発生します。 これにより、キーが正しく使用されず、多くの行が変更または削除される可能性があるUPDATE
およびDELETE
ステートメントを捕捉できます。 デフォルト値はOFF
です。mysql クライアントの場合は、
--safe-updates
オプションを使用してsql_safe_updates
を有効にできます。 詳細は、セーフ更新モードの使用 (--safe-updates)を参照してください。 -
システム変数 sql_select_limit
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer SELECT
ステートメントから返される最大行数。 詳細は、セーフ更新モードの使用 (--safe-updates)を参照してください。新規接続についてのデフォルト値は、サーバーがテーブルあたりで許可する最大行数です。 標準的なデフォルト値は (232)−1 または (264)−1 です。 制限を変更した場合、デフォルト値は
DEFAULT
の値を割り当てることでリストアできます。SELECT
にLIMIT
句がある場合、LIMIT
がsql_select_limit
の値に優先されます。 -
システム変数 sql_warnings
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
この変数は、警告が発生する場合に、単一行の
INSERT
ステートメントが情報文字列を生成するかどうかを制御します。 デフォルトはOFF
です。 情報文字列を生成するには、値をON
に設定します。 -
コマンド行形式 --ssl-ca=file_name
システム変数 ssl_ca
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
PEM 形式の認証局 (CA) 証明書ファイルのパス名。 このファイルには、信頼できる SSL 認証局のリストが含まれています。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-capath=dir_name
システム変数 ssl_capath
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULL
PEM 形式の信頼できる SSL 認証局 (CA) 証明書ファイルを含むディレクトリのパス名。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-cert=file_name
システム変数 ssl_cert
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
PEM 形式のサーバー SSL 公開キー証明書ファイルのパス名。
制限付き暗号または暗号カテゴリを使用する証明書に
ssl_cert
が設定された状態でサーバーを起動すると、サーバーは暗号化された接続のサポートを無効にして起動します。 暗号制限の詳細は、接続暗号構成 を参照してください。MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-cipher=name
システム変数 ssl_cipher
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 NULL
TLSv1.2までのTLS プロトコルを使用する接続に許可される暗号のリスト。 リスト内の暗号がサポートされていない場合、これらの TLS プロトコルを使用する暗号化された接続は機能しません。
移植性を最大限に高めるために、暗号リストはコロンで区切られた 1 つ以上の暗号名のリストである必要があります。 例:
[mysqld] ssl_cipher="AES128-SHA" ssl_cipher="DHE-RSA-AES128-GCM-SHA256:AES128-SHA"
OpenSSL は、https://www.openssl.org/docs/manmaster/man1/ciphers.html の OpenSSL ドキュメントで説明されている暗号を指定するための構文をサポートしています。
MySQL がサポートする暗号化暗号の詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」 を参照してください。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-crl=file_name
システム変数 ssl_crl
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
PEM 形式の証明書失効リストを含むファイルのパス名。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-crlpath=dir_name
システム変数 ssl_crlpath
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULL
PEM 形式の証明書失効リストファイルを含むディレクトリのパス。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-fips-mode={OFF|ON|STRICT}
システム変数 ssl_fips_mode
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 OFF
有効な値 OFF
(または 0)ON
(または 1)STRICT
(または 2)サーバー側で FIPS モードを有効にするかどうかを制御します。
ssl_fips_mode
システム変数は、暗号化された接続をサーバーが許可するかどうかの制御には使用されず、許可される暗号化操作に影響する点で、他のssl_
システム変数とは異なります。 セクション6.8「FIPS のサポート」を参照してください。xxx
次の
ssl_fips_mode
値を使用できます:OFF
(or 0): FIPS モードを無効にします。ON
(or 1): FIPS モードを有効にします。STRICT
(or 2): 「strict」 FIPS モードを有効にします。
注記OpenSSL FIPS オブジェクトモジュールが使用できない場合、
ssl_fips_mode
に許可される値はOFF
のみです。 この場合、起動時にssl_fips_mode
をON
またはSTRICT
に設定すると、サーバーでエラーメッセージが生成されて終了します。 -
コマンド行形式 --ssl-key=file_name
システム変数 ssl_key
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 ファイル名 デフォルト値 NULL
PEM 形式のサーバー SSL 秘密キーファイルのパス名。 セキュリティを向上させるには、RSA キーサイズが 2048 ビット以上の証明書を使用します。
鍵ファイルがパスフレーズで保護されている場合、サーバーはユーザーにパスフレーズの入力を求めます。 パスワードは対話形式で指定する必要があり、ファイルには格納できません。 パスフレーズが正しくない場合は、鍵を読み取ることができない場合と同様に、プログラムが続行されます。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --stored-program-cache=#
システム変数 stored_program_cache
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 256
最小値 16
最大値 524288
接続あたりでキャッシュされるストアドルーチンの数について、上側のソフトリミットを設定します。 この変数の値は、ストアドプロシージャーおよびストアドファンクションで、MySQL Server によって維持される 2 つのキャッシュそれぞれに保持されるストアドルーチンの数に関して指定します。
ストアドルーチンが実行されると、ルーチン内の先頭または最上位レベルのステートメントが解析される前に、このキャッシュサイズが検査されます。同じタイプのルーチン (どちらが実行されているかによってストアドプロシージャーまたはストアドファンクション) の数が、この変数によって指定される制限を超える場合、対応するキャッシュがフラッシュされ、キャッシュされたオブジェクトに対して以前割り当てられていたメモリーが解放されます。 これにより、ストアドルーチン間に依存関係がある場合でも、キャッシュを安全にフラッシュできます。
ストアドプロシージャおよびストアドファンクションキャッシュは、dictionary object cache のストアドプログラム定義キャッシュパーティションと並行して存在します。 ストアドプロシージャおよびストアドファンクションキャッシュは接続ごとに行われますが、ストアドプログラム定義キャッシュは共有されます。 ストアドプロシージャキャッシュとストアドファンクションキャッシュにオブジェクトが存在するかどうかは、ストアドプログラム定義キャッシュにオブジェクトが存在するかどうかに依存しません。その逆も同様です。 詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
stored_program_definition_cache
コマンド行形式 --stored-program-definition-cache=#
システム変数 stored_program_definition_cache
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 256
最小値 256
最大値 524288
ディクショナリオブジェクトキャッシュに保持できるストアドプログラム定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。
未使用のストアドプログラム定義オブジェクトは、使用中の数が
stored_program_definition_cache
で定義された容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。0 に設定すると、ストアドプログラム定義オブジェクトは、使用中はディクショナリオブジェクトキャッシュにのみ保持されます。
ストアドプログラム定義キャッシュパーティションは、
stored_program_cache
オプションを使用して構成されたストアドプロシージャおよびストアドファンクションキャッシュと並行して存在します。stored_program_cache
オプションは、接続ごとにキャッシュされるストアドプロシージャまたはファンクションの数に弱い上限を設定し、接続がストアドプロシージャまたはファンクションを実行するたびに制限がチェックされます。 一方、ストアドプログラム定義キャッシュパーティションは、他の目的でストアドプログラム定義オブジェクトを格納する共有キャッシュです。 ストアドプログラム定義キャッシュパーティションにオブジェクトが存在しても、ストアドプロシージャキャッシュまたはストアドファンクションキャッシュにオブジェクトが存在するかどうかには依存しません。その逆も同様です。関連情報については、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
コマンド行形式 --super-read-only[={OFF|ON}]
システム変数 super_read_only
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
read_only
システム変数が有効になっている場合、サーバーは、CONNECTION_ADMIN
権限 (または非推奨のSUPER
権限) を持つユーザー以外のクライアント更新を許可しません。super_read_only
システム変数も有効になっている場合、サーバーはCONNECTION_ADMIN
またはSUPER
を持つユーザーからのクライアント更新を禁止します。 読取り専用モードの説明およびread_only
とsuper_read_only
の相互作用の詳細は、read_only
システム変数の説明を参照してください。super_read_only
が有効になっているときにクライアントの更新を防止するには、CREATE FUNCTION
(UDF のインストール)、INSTALL PLUGIN
、INSTALL COMPONENT
など、必ずしも更新ではないように見える操作を含めます。 これらの操作は、mysql
システムスキーマのテーブルへの変更を伴うため禁止されています。レプリケーションソースサーバー上の
super_read_only
への変更は、複製サーバーにレプリケートされません。 この値は、ソースの設定とは無関係にレプリカに設定できます。 -
コマンド行形式 --syseventlog.facility=value
導入 8.0.13 システム変数 syseventlog.facility
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 daemon
syslog
に書き込まれるエラーログ出力の機能 (メッセージを送信しているプログラムのタイプ)。 この変数は、log_sink_syseventlog
エラーログコンポーネントがインストールされていないかぎり使用できません。 セクション5.4.2.8「システムログへのエラーロギング」を参照してください。許可される値はオペレーティングシステムによって異なります。システムの
syslog
ドキュメントを参照してください。この変数は Windows には存在しません。
-
コマンド行形式 --syseventlog.include-pid[={OFF|ON}]
導入 8.0.13 システム変数 syseventlog.include_pid
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
syslog
に書き込まれるエラーログ出力の各行にサーバープロセス ID を含めるかどうか。 この変数は、log_sink_syseventlog
エラーログコンポーネントがインストールされていないかぎり使用できません。 セクション5.4.2.8「システムログへのエラーロギング」を参照してください。この変数は Windows には存在しません。
-
コマンド行形式 --syseventlog.tag=tag
導入 8.0.13 システム変数 syseventlog.tag
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 empty string
syslog
または Windows イベントログに書き込まれるエラーログ出力でサーバー識別子に追加されるタグ。 この変数は、log_sink_syseventlog
エラーログコンポーネントがインストールされていないかぎり使用できません。 セクション5.4.2.8「システムログへのエラーロギング」を参照してください。デフォルトでは、タグは設定されていないため、サーバー識別子は単に Windows では
MySQL
で、他のプラットフォームではmysqld
です。tag
のタグ値を指定すると、先頭にハイフンが付いたサーバー識別子にタグ値が追加され、syslog
識別子mysqld-
(または Windows の場合はtag
MySQL-
) が生成されます。tag
Windows で、まだ存在しないタグを使用するには、管理者権限を持つアカウントからサーバーを実行して、タグのレジストリエントリの作成を許可する必要があります。 タグがすでに存在する場合、昇格された権限は必要ありません。
-
システム変数 system_time_zone
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 サーバーシステムタイムゾーン。 サーバーは実行を開始するとき、マシンのデフォルトからタイムゾーン設定を継承し、サーバーを実行するために使用されるアカウントの環境または起動スクリプトによって変更されることがあります。 値は
system_time_zone
を設定するために使用されます。 通常、タイムゾーンはTZ
環境変数で指定されます。 または mysqld_safe スクリプトの--timezone
オプションを使用しても指定できます。system_time_zone
変数はtime_zone
と異なります。 これらは同じ値になることもありますが、後者の変数は、接続する各クライアントのタイムゾーンを初期化するために使用されます。 セクション5.1.15「MySQL Server でのタイムゾーンのサポート」を参照してください。 -
コマンド行形式 --table-definition-cache=#
システム変数 table_definition_cache
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 -1
(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 400
最大値 524288
定義キャッシュに格納できるテーブル定義の数。 多数のテーブルを使用する場合、大きいテーブル定義キャッシュを作成して、テーブルを開くことを高速化できます。 標準のテーブルキャッシュと異なり、テーブル定義キャッシュは占有スペースが少なくファイルディスクリプタを使用しません。 最小値は 400 です。 デフォルト値は次の式に基づき、2000 までに制限されています。
MIN(400 + table_open_cache / 2, 2000)
InnoDB
の場合、table_definition_cache
は、InnoDB
データディクショナリキャッシュ内の開いているテーブルインスタンスの数のソフト制限として機能します。 開いているテーブルインスタンスの数がtable_definition_cache
設定を超えた場合、LRU メカニズムはエビクション用のテーブルインスタンスにマークを付け、最終的にデータディクショナリキャッシュから削除されます。 この制限は、次回サーバー開始までに使用頻度が低いテーブルインスタンスをキャッシュするために大量のメモリーが使用されるような状況に対処するのに役立ちます。 外部キー関係を持つ親テーブルインスタンスおよび子テーブルインスタンスは LRU リストに配置されず、メモリーから削除されないため、キャッシュされたメタデータを持つテーブルインスタンスの数は、table_definition_cache
で定義された制限を超える可能性があります。さらに、
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 リストを検索して、完全にフラッシュされて現在延長されていないファイルを探します。 この処理は、新しいテーブルスペースが開くたびに実行されます。 「非アクティブな」テーブルスペースがない場合、テーブルスペースファイルはクローズされません。テーブル定義キャッシュは、dictionary object cache のテーブル定義キャッシュパーティションと並行して存在します。 どちらのキャッシュにもテーブル定義が格納されますが、MySQL サーバーの様々な部分に対応します。 一方のキャッシュ内のオブジェクトは、他方のキャッシュ内の存在オブジェクトに依存しません。 詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
table_encryption_privilege_check
コマンド行形式 --table-encryption-privilege-check[={OFF|ON}]
導入 8.0.16 システム変数 table_encryption_privilege_check
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
default_table_encryption
設定とは異なる暗号化を使用してスキーマまたは一般テーブルスペースを作成または変更する場合、またはデフォルトのスキーマ暗号化とは異なる暗号化設定を使用してテーブルを作成または変更する場合に発生するTABLE_ENCRYPTION_ADMIN
権限チェックを制御します。 このチェックはデフォルトで無効になっています。実行時に
table_encryption_privilege_check
を設定するには、SUPER
権限が必要です。table_encryption_privilege_check
は、SET PERSIST
およびSET PERSIST_ONLY
構文をサポートしています。 セクション5.1.9.3「永続化されるシステム変数」を参照してください。詳細は、スキーマおよび一般テーブルスペースの暗号化デフォルトの定義を参照してください。
-
コマンド行形式 --table-open-cache=#
システム変数 table_open_cache
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 4000
最小値 1
最大値 524288
すべてのスレッドについて開いているテーブルの数。 この値を大きくすると、mysqld が要求するファイルディスクリプタの数が増加します。
Opened_tables
ステータス変数を検査して、テーブルキャッシュを増やす必要があるかどうかを確認できます。 セクション5.1.10「サーバーステータス変数」を参照してください。Opened_tables
の値が大きく、FLUSH TABLES
をあまり使用しない場合 (すべてのテーブルのクローズおよび再オープンの強制のみを実行する)、table_open_cache
変数の値を増やします。 テーブルキャッシュに関する詳細は、セクション8.4.3.1「MySQL でのテーブルのオープンとクローズの方法」を参照してください。 -
コマンド行形式 --table-open-cache-instances=#
システム変数 table_open_cache_instances
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 16
最小値 1
最大値 64
オープンテーブルキャッシュインスタンスの数。 セッション間の競合を減少させることでスケーラビリティーを改善するために、開いているテーブルキャッシュを、サイズが
table_open_cache
/table_open_cache_instances
のいくつかの小さいキャッシュインスタンスにパーティション化できます。 DML ステートメントでは、セッションはインスタンスにアクセスするために、1 つのインスタンスのみロックする必要があります。 このセグメントキャッシュは複数インスタンスにわたってアクセスし、多くのセッションがテーブルにアクセスする場合にキャッシュを使用する演算の高いパフォーマンスが可能になります。 (DDL ステートメントでは引き続きキャッシュ全体のロックが必要ですが、そのようなステートメントは DML ステートメントよりも頻度がずっと低くなります。)通常 16 以上のコアを使用するシステムでは、8 または 16 の値が推奨されます。
-
コマンド行形式 --tablespace-definition-cache=#
システム変数 tablespace_definition_cache
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 256
最小値 256
最大値 524288
ディクショナリオブジェクトキャッシュに保持できるテーブルスペース定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。
未使用のテーブルスペース定義オブジェクトは、使用中の数が
tablespace_definition_cache
で定義されている容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。0
を設定すると、テーブルスペース定義オブジェクトは、使用中はディクショナリオブジェクトキャッシュにのみ保持されます。詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
コマンド行形式 --temptable-max-mmap=#
導入 8.0.23 システム変数 temptable_max_mmap
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1073741824
最小値 0
最大値 2^64-1
TempTable ストレージエンジンがディスク上の
InnoDB
内部一時テーブルへのデータの格納を開始する前に、メモリーマップされた一時ファイルから割り当てることができるメモリーの最大量 (バイト単位) を定義します。 0 に設定すると、メモリーマップされた一時ファイルからのメモリーの割り当てが無効になります。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --temptable-max-ram=#
システム変数 temptable_max_ram
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1073741824
最小値 2097152
最大値 2^64-1
TempTable
ストレージエンジンがディスクへのデータの格納を開始する前に占有できるメモリーの最大量を定義します。 デフォルト値は 1073741824 バイト (1GiB) です。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --temptable-use-mmap[={OFF|ON}]
導入 8.0.16 システム変数 temptable_use_mmap
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
TempTable ストレージエンジンが占有しているメモリー量が
temptable_max_ram
変数で定義されている制限を超えた場合に、TempTable ストレージエンジンがメモリーマップされた一時ファイルとして内部インメモリー一時テーブルの領域を割り当てるかどうかを定義します。temptable_use_mmap
が無効になっている場合、TempTable ストレージエンジンは代わりにInnoDB
ディスク上の内部一時テーブルを使用します。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --thread-cache-size=#
システム変数 thread_cache_size
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 -1
(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 0
最大値 16384
サーバーが再使用のためにキャッシュするスレッドの数。 クライアントが接続を切断したとき、スレッド数が
thread_cache_size
より少なければ、クライアントのスレッドはキャッシュに配置されます。 スレッドのリクエストは、可能であれば、キャッシュからのスレッドを再使用することによって満たされ、キャッシュが空の場合のみ新しいスレッドが作成されます。 多くの新しい接続がある場合、この変数を増やしてパフォーマンスを向上できます。 スレッドの実装が適切な場合、通常はパフォーマンスが著しく改善されることはありません。 ただし、1 秒あたり数百件の接続がサーバーで見られる場合、通常はthread_cache_size
を十分に高く設定すると、ほとんどの新しい接続でキャッシュされたスレッドを使用できます。 ステータス変数Connections
とThreads_created
の差異を調査することで、スレッドキャッシュの効率性を確認できます。 詳細は、セクション5.1.10「サーバーステータス変数」を参照してください。デフォルト値は次の式に基づいており、上限は 100 に制限されています。
8 + (max_connections / 100)
-
コマンド行形式 --thread-handling=name
システム変数 thread_handling
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 one-thread-per-connection
有効な値 no-threads
one-thread-per-connection
loaded-dynamically
接続スレッドのサーバーによって使用されるスレッド処理モデル。 使用可能な値は、
no-threads
(サーバーは単一のスレッドを使用して 1 つの接続を処理)、one-thread-per-connection
(サーバーは各クライアント接続を処理するために 1 つのスレッドを使用)、およびloaded-dynamically
(スレッドプールプラグインによって初期化時に設定) です。no-threads
は、Linux でのデバッグに役立ちます。セクション5.9「MySQL のデバッグ」 を参照してください。 -
コマンド行形式 --thread-pool-algorithm=#
システム変数 thread_pool_algorithm
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 1
この変数は、スレッドプールプラグインが使用するアルゴリズムを制御します。
値 0 (デフォルト) では、並列性の低い保守的なアルゴリズムが使用されます。これはもっとも良く検査されていて、非常に良好な結果を生成することが知られています。
値 1 では並列性が高まり、より積極的なアルゴリズムが使用されます。このアルゴリズムは、最適なスレッドカウントでパフォーマンスが 5 - 10% 高まりますが、接続数が増えるにつれてパフォーマンスが低下することが知られています。 この使用は実験的であり、サポートされないものとみなすようにしてください。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
thread_pool_high_priority_connection
コマンド行形式 --thread-pool-high-priority-connection=#
システム変数 thread_pool_high_priority_connection
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 1
この変数は、実行前の新規ステートメントのキューイングに影響します。 値が 0 (false、デフォルト) の場合、ステートメントのキューイングでは優先度の低いキューと優先度の高いキューの両方が使用されます。 値が 1 (true) の場合、キューに入れられるステートメントは常に優先度の高いキューに入ります。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
thread_pool_max_active_query_threads
コマンド行形式 --thread-pool-max-active-query-threads
導入 8.0.19 システム変数 thread_pool_max_active_query_threads
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 512
グループ当たりのアクティブな (実行中の) クエリースレッドの最大許容数。 値が 0 の場合、スレッドプールプラグインは使用可能な最大数のスレッドを使用します。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
thread_pool_max_unused_threads
コマンド行形式 --thread-pool-max-unused-threads=#
システム変数 thread_pool_max_unused_threads
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 0
最小値 0
最大値 4096
スレッドプール内で許可される最大の未使用スレッド数。 この変数により、スリープ状態のスレッドによって使用されるメモリーの量を制限できます。
値 0 (デフォルト) は、スリープ状態のスレッドの数を制限しないことを意味します。 値
N
は、N
が 0 より大きい場合、1 つのコンシューマスレッドと、N
−1 個の予約スレッドを意味します。 この状況で、スレッドがスリープ状態に入ろうとしたが、スリープ状態のスレッド数がすでに最大値に到達している場合、スレッドはスリープ状態に入らずに存在します。スリープ状態のスレッドは、コンシューマスレッドまたは予約スレッドのいずれかとしてスリープ状態になります。 スレッドプールでは、1 つのスレッドがスリープ状態のコンシューマスレッドであることを許可します。 スレッドがスリープ状態になり、既存のコンシューマスレッドがない場合は、コンシューマスレッドとしてスリープします。 スレッドをウェイクアップさせる必要があるとき、コンシューマスレッドが存在すれば、そのコンシューマスレッドが選択されます。 ウェイクアップするコンシューマスレッドがない場合にのみ予約スレッドが選択されます。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-pool-prio-kickup-timer=#
システム変数 thread_pool_prio_kickup_timer
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 1000
最小値 0
最大値 4294967294
この変数は、優先度が低いキューで実行を待機するステートメントに影響します。 この値は、待機中のステートメントが優先度の高いキューに移されるまでのミリ秒数です。 デフォルトは 1000 (1 秒) です。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-pool-size=#
システム変数 thread_pool_size
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 16
最小値 1
最大値 (≥ 8.0.19) 512
最大値 (≤ 8.0.18) 64
スレッドプール内のスレッドグループの数。 これはスレッドプールのパフォーマンスを制御するもっとも重要なパラメータです。 同時に実行できるステートメントの数に影響します。 許容値の範囲外の値を指定すると、スレッドプールプラグインはロードされず、サーバーはエラーログにメッセージを書き込みます。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-pool-stall-limit=#
システム変数 thread_pool_stall_limit
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 6
最小値 4
最大値 600
この変数はステートメントの実行に影響します。 この値は、ステートメントが実行を開始したあと、ステートメントが停滞していると定義される前に終了する時間量で、その時点で、スレッドプールはスレッドグループは別のステートメントの実行の開始を許可します。 値は 10 ミリ秒単位で測定されるため、デフォルトの 6 は 60ms を意味します。 待機の値が短いと、スレッドはよりすみやかに開始できます。 短い値はデッドロック状況を回避により適しています。 長い待機の値は、長時間実行するステートメントを含むワークロードで有用で、現在のステートメントの実行時に多数の新しいステートメントが開始しないようにします。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-stack=#
システム変数 thread_stack
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 (64 ビットプラットフォーム) 286720
デフォルト値 (32 ビットプラットフォーム) 221184
最小値 131072
最大値 (64 ビットプラットフォーム) 18446744073709551615
最大値 (32 ビットプラットフォーム) 4294967295
ブロックサイズ 1024
各スレッドのスタックサイズ。 デフォルトは、通常の動作に十分な大きさです。 スレッドスタックサイズが小さすぎると、サーバーで処理できる SQL ステートメントの複雑さ、ストアドプロシージャーの再帰の深さなど、メモリーを大量に消費する処理が制限されます。
-
システム変数 time_zone
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用 (≥ 8.0.17)はい SET_VAR
ヒントの適用 (≤ 8.0.16)いいえ 型 文字列 デフォルト値 SYSTEM
最小値 (≥ 8.0.19) -14:00
最小値 (≤ 8.0.18) -12:59
最大値 (≥ 8.0.19) +14:00
最大値 (≤ 8.0.18) +13:00
現在のタイムゾーン。 この変数は、接続する各クライアントのタイムゾーンを初期化するために使用されます。 デフォルトでは、この初期値は
'SYSTEM'
です (「system_time_zone
の値を使用する」ことを意味します)。 この値はサーバー起動時に--default-time-zone
オプションで明示的に指定できます。 セクション5.1.15「MySQL Server でのタイムゾーンのサポート」を参照してください。注記SYSTEM
に設定されている場合、タイムゾーン計算を必要とするすべての MySQL 関数コールは、システムライブラリコールを実行して現在のシステムタイムゾーンを決定します。 このコールはグローバル mutex によって保護される可能性があるため、競合が発生します。 -
システム変数 timestamp
スコープ セッション 動的 はい SET_VAR
ヒントの適用はい 型 数値 デフォルト値 UNIX_TIMESTAMP()
最小値 1
最大値 2147483647
このクライアントの時間を設定します。 これは、バイナリログを使用して行を復元する場合に元のタイムスタンプを取得するために使用されます。
timestamp_value
は、Unix エポックタイムスタンプ ('
形式の値ではなく、YYYY-MM-DD hh:mm:ss
'UNIX_TIMESTAMP()
によって返される値など) またはDEFAULT
である必要があります。timestamp
を定数値に設定すると、ふたたび変更されるまでその値が保持されます。timestamp
をDEFAULT
に設定すると、その値はアクセスを受けた時点での現在の日付および時間になります。timestamp
は、値にマイクロ秒部分が含まれているため、BIGINT
ではなくDOUBLE
です。 最大値は、TIMESTAMP
データ型の場合と同じように、'2038-01-19 03:14:07'
UTC に対応します。SET timestamp
はNOW()
によって戻された値に影響を及ぼしますが、SYSDATE()
によって戻された値には影響しません。 つまり、バイナリログのタイムスタンプ設定は、SYSDATE()
の呼び出しに影響しないことを意味します。--sysdate-is-now
オプションを指定してサーバーを起動すると、SYSDATE()
をNOW()
のシノニムにできます。この場合、SET timestamp
は両方の機能に影響します。 -
コマンド行形式 --tls-ciphersuites=ciphersuite_list
導入 8.0.16 システム変数 tls_ciphersuites
スコープ グローバル 動的 はい SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 NULL
TLSv1.3 を使用する暗号化された接続に対してサーバーが許可する暗号スイート。 値は、コロンで区切られたゼロ個以上の暗号スイート名のリストです。
この変数に指定できる暗号スイートは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 この変数が設定されていない場合、デフォルト値は
NULL
です。つまり、サーバーは暗号スイートのデフォルトセットを許可します。 変数が空の文字列に設定されている場合、暗号スイートは有効にならず、暗号化された接続を確立できません。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。 -
コマンド行形式 --tls-version=protocol_list
システム変数 tls_version
スコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VAR
ヒントの適用いいえ 型 文字列 デフォルト値 (≥ 8.0.16) TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
(OpenSSL 1.1.1 以上)TLSv1,TLSv1.1,TLSv1.2
(otherwise)デフォルト値 (≤ 8.0.15) TLSv1,TLSv1.1,TLSv1.2
暗号化された接続に対してサーバーが許可するプロトコル。 値は、1 つまたは複数のコンマ区切りプロトコル名のリストです。 この変数に指定できるプロトコルは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 「「穴」」をリストに残さないなど、許可されたプロトコルを選択する必要があります。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --tmp-table-size=#
システム変数 tmp_table_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Integer デフォルト値 16777216
最小値 1024
最大値 18446744073709551615
内部インメモリーの一時テーブルの最大サイズ。 この変数はユーザーが作成した
MEMORY
テーブルには適用されません。実際の制限は、
tmp_table_size
およびmax_heap_table_size
の小さい方です。 インメモリー一時テーブルが制限を超えると、MySQL はそれをディスク上の一時テーブルに自動的に変換します。多数の高度な
GROUP BY
クエリーを実行する場合にメモリーが多くあるときは、tmp_table_size
(さらに必要に応じてmax_heap_table_size
) の値を増やします。作成されたディスク上の内部一時テーブルの数と作成された内部一時テーブルの合計数を比較するには、
Created_tmp_disk_tables
とCreated_tmp_tables
の値を比較します。セクション8.4.4「MySQL での内部一時テーブルの使用」も参照してください。
-
コマンド行形式 --tmpdir=dir_name
システム変数 tmpdir
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 ディレクトリ名 一時ファイルを作成するために使用するディレクトリのパス。 これは、小さすぎて一時テーブルを保持できないパーティション上にデフォルトの
/tmp
ディレクトリがある場合に役立つことがあります。 この変数は、ラウンドロビン方式で使用されるいくつかのパスのリストとして設定できます。 パスは、Unix ではコロン文字 (:
) で区切り、Windows ではセミコロン文字 (;
) で区切る必要があります。tmpdir
は、メモリーベースのファイルシステム上のディレクトリや、サーバーホストの再起動時にクリアされるディレクトリなど、非永続的な場所にすることができます。 MySQL サーバーがレプリカとして機能しており、tmpdir
に非永続的な場所を使用している場合は、slave_load_tmpdir
変数を使用してレプリカに別の一時ディレクトリを設定することを検討してください。 レプリカの場合、LOAD DATA
ステートメントのレプリケートに使用される一時ファイルはこのディレクトリに格納されるため、永続的な場所ではマシンの再起動後も存続できますが、一時ファイルが削除されている場合は、再起動後もレプリケーションを続行できるようになりました。一時ファイルのストレージ位置に関しては、セクションB.3.3.5「MySQL が一時ファイルを格納する場所」を参照してください。
-
コマンド行形式 --transaction-alloc-block-size=#
システム変数 transaction_alloc_block_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 8192
最小値 1024
最大値 131072
ブロックサイズ 1024
メモリーを必要とするトランザクションごとのメモリープールを増やす、バイト単位の増加量。
transaction_prealloc_size
の説明を参照してください。 -
コマンド行形式 --transaction-isolation=name
システム変数 transaction_isolation
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 列挙 デフォルト値 REPEATABLE-READ
有効な値 READ-UNCOMMITTED
READ-COMMITTED
REPEATABLE-READ
SERIALIZABLE
トランザクション分離レベル。 デフォルトは
REPEATABLE-READ
です。トランザクション分離レベルには 3 つのスコープがあります: グローバル、セッションおよび次のトランザクション。 この 3 スコープの実装は、あとで説明するように、いくつかの非標準のアイソレーションレベルの割り当てセマンティクスにつながります。
起動時にグローバルトランザクション分離レベルを設定するには、
--transaction-isolation
サーバーオプションを使用します。実行時には、
SET
ステートメントを使用してtransaction_isolation
システム変数に値を割り当てるか、SET TRANSACTION
ステートメントを使用して間接的に分離レベルを設定できます。transaction_isolation
をスペースを含む分離レベル名に直接設定する場合は、スペースをダッシュで置き換えて名前を引用符で囲む必要があります。 たとえば、次のSET
ステートメントを使用してグローバル値を設定します:SET GLOBAL transaction_isolation = 'READ-COMMITTED';
グローバル
transaction_isolation
値を設定すると、後続のすべてのセッションの分離レベルが設定されます。 既存のセッションは影響を受けません。セッションまたは次のレベルの
transaction_isolation
値を設定するには、SET
ステートメントを使用します。 ほとんどのセッションシステム変数では、次のステートメントは値を設定する同等の方法です:SET @@SESSION.var_name = value; SET SESSION var_name = value; SET var_name = value; SET @@var_name = value;
前述のように、トランザクション分離レベルには、グローバルスコープとセッションスコープに加えて、次のトランザクションスコープがあります。 次のトランザクションスコープを設定できるようにするために、セッションシステム変数値を割り当てるための
SET
構文には、transaction_isolation
の非標準セマンティクスがあります:-
セッション分離レベルを設定するには、次の構文のいずれかを使用します:
SET @@SESSION.transaction_isolation = value; SET SESSION transaction_isolation = value; SET transaction_isolation = value;
これらの構文ごとに、次のセマンティクスが適用されます:
セッション内で実行される後続のすべてのトランザクションの分離レベルを設定します。
トランザクション内で許可されますが、現在進行中のトランザクションには影響しません。
トランザクション間で実行する場合は、次のトランザクション分離レベルを設定する前述のステートメントをオーバーライドします。
SET SESSION TRANSACTION ISOLATION LEVEL
(SESSION
キーワードを使用) に対応します。
-
次のトランザクション分離レベルを設定するには、次の構文を使用します:
SET @@transaction_isolation = value;
その構文には、次のセマンティクスが適用されます:
分離レベルは、セッション内で次に実行される単一トランザクションに対してのみ設定します。
後続のトランザクションは、セッション分離レベルに戻ります。
トランザクション内では許可されません。
SET TRANSACTION ISOLATION LEVEL
(SESSION
キーワードなし) に対応します。
SET TRANSACTION
およびtransaction_isolation
システム変数との関係の詳細は、セクション13.3.7「SET TRANSACTION ステートメント」 を参照してください。 -
-
コマンド行形式 --transaction-prealloc-size=#
システム変数 transaction_prealloc_size
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 4096
最小値 1024
最大値 131072
ブロックサイズ 1024
トランザクションに関するさまざまな割り当てでメモリーの取得元となる、トランザクションごとのメモリープールが存在します。 プールのバイト単位の初期サイズは
transaction_prealloc_size
です。 利用できるメモリーが不足しているためプールから十分に行えない各割り当てについて、プールはtransaction_alloc_block_size
バイトだけ増加されます。 トランザクションが終了すると、プールはtransaction_prealloc_size
バイトに切り捨てられます。単一トランザクション内のすべてのステートメントを含めるように
transaction_prealloc_size
を十分に大きくすると、多数のmalloc()
コールを避けることができます。 -
コマンド行形式 --transaction-read-only[={OFF|ON}]
システム変数 transaction_read_only
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 OFF
トランザクションアクセスモード。 値は、
OFF
(読取り/書込み、デフォルト) またはON
(読取り専用) です。トランザクションアクセスモードには 3 つのスコープがあります: グローバル、セッションおよび次のトランザクション。 この 3 スコープの実装は、あとで説明するように、いくつかの非標準のアクセスモード割り当てセマンティクスにつながります。
起動時にグローバルトランザクションアクセスモードを設定するには、
--transaction-read-only
サーバーオプションを使用します。実行時には、
SET
ステートメントを使用してtransaction_read_only
システム変数に値を割り当てるか、SET TRANSACTION
ステートメントを使用して間接的にアクセスモードを設定できます。 たとえば、次のSET
ステートメントを使用してグローバル値を設定します:SET GLOBAL transaction_read_only = ON;
グローバル
transaction_read_only
値を設定すると、後続のすべてのセッションのアクセスモードが設定されます。 既存のセッションは影響を受けません。セッションまたは次のレベルの
transaction_read_only
値を設定するには、SET
ステートメントを使用します。 ほとんどのセッションシステム変数では、次のステートメントは値を設定する同等の方法です:SET @@SESSION.var_name = value; SET SESSION var_name = value; SET var_name = value; SET @@var_name = value;
前述のように、トランザクションアクセスモードには、グローバルスコープとセッションスコープに加えて、次のトランザクションスコープがあります。 次のトランザクションスコープを設定できるようにするために、セッションシステム変数値を割り当てるための
SET
構文には、transaction_read_only
の非標準セマンティクスがあります。-
セッションアクセスモードを設定するには、次の構文のいずれかを使用します:
SET @@SESSION.transaction_read_only = value; SET SESSION transaction_read_only = value; SET transaction_read_only = value;
これらの構文ごとに、次のセマンティクスが適用されます:
セッション内で実行される後続のすべてのトランザクションのアクセスモードを設定します。
トランザクション内で許可されますが、現在進行中のトランザクションには影響しません。
トランザクション間で実行する場合は、次のトランザクションアクセスモードを設定する前述のステートメントをオーバーライドします。
SET SESSION TRANSACTION {READ WRITE | READ ONLY}
(SESSION
キーワードを使用) に対応します。
-
次のトランザクションアクセスモードを設定するには、次の構文を使用します:
SET @@transaction_read_only = value;
その構文には、次のセマンティクスが適用されます:
セッション内で次に実行される単一トランザクションのアクセスモードのみを設定します。
後続のトランザクションは、セッションアクセスモードに戻ります。
トランザクション内では許可されません。
SET TRANSACTION {READ WRITE | READ ONLY}
(SESSION
キーワードなし) に対応します。
SET TRANSACTION
およびtransaction_read_only
システム変数との関係の詳細は、セクション13.3.7「SET TRANSACTION ステートメント」 を参照してください。 -
-
システム変数 unique_checks
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 ON
1 に設定した場合 (デフォルト)、
InnoDB
テーブルのセカンダリインデックスの一意性チェックが行われます。 0 に設定した場合、ストレージエンジンでは、重複したキーが入力データに存在しないことが想定されます。 一意性違反がデータにないことが確実にわかっている場合、これを 0 に設定してInnoDB
への大きいテーブルのインポートを高速化できます。この変数を 0 に設定しても、require ストレージエンジンは重複キーを無視しません。 エンジンは引き続き、重複キーの存在を検査し、検出された場合に重複キーエラーが生成されます。
-
コマンド行形式 --updatable-views-with-limit[={OFF|ON}]
システム変数 updatable_views_with_limit
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 1
この変数は、基礎テーブルで定義した主キーのすべてのカラムがビューに含まれていない場合に、更新ステートメントに
LIMIT
句が含まれているとき、そのビューの更新を行えるかどうかを制御します。 (このような更新は GUI ツールによって頻繁に生成されます。) 更新はUPDATE
またはDELETE
ステートメントのことです。 ここでの主キーとはPRIMARY KEY
か、カラムにNULL
を含むことができないUNIQUE
インデックスです。変数は 2 つの値に設定できます。
1
またはYES
: 警告のみ発行します (エラーメッセージではない)。 これはデフォルト値です。0
またはNO
: 更新を禁止します。
-
導入 8.0.13 システム変数 use_secondary_engine
スコープ セッション 動的 はい SET_VAR
ヒントの適用はい 型 列挙 デフォルト値 ON
有効な値 OFF
ON
FORCED
将来使用します。
セカンダリエンジンを使用してクエリーを実行するかどうか。
HeatWave で使用します。 MySQL HeatWave User Guide を参照してください。
-
validate_password.
xxx
validate_password
コンポーネントは、validate_password.
という形式の名前を持つ一連のシステム変数を実装します。 これらの変数は、そのコンポーネントによるパスワードテストに影響します。セクション6.4.3.2「パスワード検証オプションおよび変数」 を参照してください。xxx
-
コマンド行形式 --validate-user-plugins[={OFF|ON}]
システム変数 validate_user_plugins
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 Boolean デフォルト値 ON
この変数が有効な場合 (デフォルト)、サーバーは各ユーザーアカウントを検査し、アカウントが使用できなくなる条件が検出された場合に警告を生成します。
アカウントが、ロードされていない認証プラグインを必要としている。
アカウントには
sha256_password
またはcaching_sha2_password
認証プラグインが必要ですが、プラグインで必要な SSL も RSA も有効にせずにサーバーが起動されました。
validate_user_plugins
を有効にすると、サーバー初期化およびFLUSH PRIVILEGES
の速度が低下します。 追加の検査が必要ない場合、この変数を起動時に無効化するとパフォーマンス低下を防ぐことができます。 -
サーバーのバージョン番号。 この値には、サーバーのビルドまたは構成情報を示す接尾辞が含まれることもあります。
-debug
は、デバッグサポートを有効にしてサーバーが構築されたことを示します。 -
システム変数 version_comment
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 CMake 構成プログラムには、MySQL の構築時にコメントを指定できる
COMPILATION_COMMENT_SERVER
オプションがあります。 この変数は、そのコメントの値を格納します。 (MySQL 8.0.14 より前は、version_comment
はCOMPILATION_COMMENT
オプションによって設定されていました。) セクション2.9.7「MySQL ソース構成オプション」を参照してください。 -
システム変数 version_compile_machine
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 サーバーバイナリのタイプ。
-
システム変数 version_compile_os
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 MySQL が構築されているオペレーティングシステムのタイプ。
-
システム変数 version_compile_zlib
スコープ グローバル 動的 いいえ SET_VAR
ヒントの適用いいえ 型 文字列 コンパイルされた
zlib
ライブラリのバージョン。 -
コマンド行形式 --wait-timeout=#
システム変数 wait_timeout
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用いいえ 型 Integer デフォルト値 28800
最小値 1
最大値 (Windows) 2147483
最大値 (その他) 31536000
非インタラクティブな接続を閉じる前に、サーバーがその接続上でアクティビティーを待機する秒数。
スレッド開始時に、セッションの
wait_timeout
値は、wait_timeout
グローバル値またはinteractive_timeout
グローバル値で初期化されますが、いずれになるかはクライアントのタイプ (mysql_real_connect()
に対するCLIENT_INTERACTIVE
接続オプションによって定義される) によって決まります。interactive_timeout
も参照してください。 -
メッセージを生成した最後のステートメントから得られたエラー、警告、および注意の数。 この変数は読み取り専用です。 セクション13.7.7.42「SHOW WARNINGS ステートメント」を参照してください。
-
コマンド行形式 --windowing-use-high-precision[={OFF|ON}]
システム変数 windowing_use_high_precision
スコープ グローバル、セッション 動的 はい SET_VAR
ヒントの適用はい 型 Boolean デフォルト値 ON
精度を失わずにウィンドウ操作を計算するかどうか。 セクション8.2.1.21「ウィンドウ機能最適化」を参照してください。