MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  サーバーシステム変数

5.1.8 サーバーシステム変数

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「システム変数の使用」 を参照してください。

追加のシステム変数情報については、次のセクションを参照してください。

注記

次の変数説明の一部では、変数を有効にするまたは無効にすることについて述べています。 これらの変数は SET ステートメントを ON または 1 に設定すると有効になり、あるいは OFF または 0 に設定すると無効になります。 ブール変数は、起動時に値 ON, TRUE, OFFFALSE (大/小文字の区別なし)、および 10 に設定できます。 セクション4.2.2.4「プログラムオプション修飾子」を参照してください。

一部のシステム変数はバッファーまたはキャッシュのサイズを制御します。 所定のバッファーについて、サーバーは内部データ構造を割り当てる必要がある場合もあります。 これらの構造は、バッファーに割り当てられた合計メモリーから割り当てられ、必要なスペースの量はプラットフォームに依存することがあります。 つまり、バッファーサイズを制御するシステム変数に値を割り当てたとき、実際に使用可能なスペースの量が、割り当てられた値と異なる場合もあることを意味します。 一部の場合では、この量は割り当てられた値より少ないこともあります。 サーバーが値を上方に調整することもできます。 たとえば、最小値が 1024 の変数に値 0 を割り当てると、サーバーは値を 1024 に設定します。

バッファーサイズ、長さ、およびスタックサイズの値は、別途指定しないかぎりバイト単位で指定されます。

一部のシステム変数はファイル名の値を取ります。 別途指定しないかぎり、値が相対パス名であれば、デフォルトのファイルの場所はデータディレクトリです。 場所を明示的に指定するには、絶対パス名を使用します。 たとえばデータディレクトリが /var/mysql/data だとします。 ファイル値変数を相対パス名として指定すると、/var/mysql/data の下に配置されます。 値が絶対パス名である場合、その場所はパス名によって指定されます。

  • activate_all_roles_on_login

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --admin-ssl-ca=file_name
    導入 8.0.21
    システム変数 admin_ssl_ca
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    ファイル名
    デフォルト値 NULL

    admin_ssl_ca システム変数は ssl_ca と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_ssl_capath

    コマンド行形式 --admin-ssl-capath=dir_name
    導入 8.0.21
    システム変数 admin_ssl_capath
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名
    デフォルト値 NULL

    admin_ssl_capath システム変数は ssl_capath と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_ssl_cert

    コマンド行形式 --admin-ssl-cert=file_name
    導入 8.0.21
    システム変数 admin_ssl_cert
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    ファイル名
    デフォルト値 NULL

    admin_ssl_cert システム変数は ssl_cert と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_ssl_cipher

    コマンド行形式 --admin-ssl-cipher=name
    導入 8.0.21
    システム変数 admin_ssl_cipher
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 NULL

    admin_ssl_cipher システム変数は ssl_cipher と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_ssl_crl

    コマンド行形式 --admin-ssl-crl=file_name
    導入 8.0.21
    システム変数 admin_ssl_crl
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    ファイル名
    デフォルト値 NULL

    admin_ssl_crl システム変数は ssl_crl と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_ssl_crlpath

    コマンド行形式 --admin-ssl-crlpath=dir_name
    導入 8.0.21
    システム変数 admin_ssl_crlpath
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名
    デフォルト値 NULL

    admin_ssl_crlpath システム変数は ssl_crlpath と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_ssl_key

    コマンド行形式 --admin-ssl-key=file_name
    導入 8.0.21
    システム変数 admin_ssl_key
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    ファイル名
    デフォルト値 NULL

    admin_ssl_key システム変数は ssl_key と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_tls_ciphersuites

    コマンド行形式 --admin-tls-ciphersuites=ciphersuite_list
    導入 8.0.21
    システム変数 admin_tls_ciphersuites
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 NULL

    admin_tls_ciphersuites システム変数は tls_ciphersuites と似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • admin_tls_version

    コマンド行形式 --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 は user_id@computer_name という形式で、使用される場所に登録される必要はありません。 この UPN は、認証ハンドシェイクの最初にサーバーによって送信されます。

    この変数は、サーバーが初期チャレンジで 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

    コマンド行形式 --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_privilegesOFF に設定されます。

    セクション25.2.2「ストアドルーチンと MySQL 権限」も参照してください。

  • auto_generate_certs

    コマンド行形式 --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

    コマンド行形式 --avoid-temporal-upgrade[={OFF|ON}]
    非推奨 はい
    システム変数 avoid_temporal_upgrade
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    この変数は、ALTER TABLE が、5.6.4 より前の形式 (TIMEDATETIME および TIMESTAMP カラムで小数秒精度をサポートしない) で検出された一時カラムを暗黙的にアップグレードするかどうかを制御します。 このようなカラムをアップグレードするには、テーブルの再構築が必要です。これにより、操作に適用される可能性のある高速変更が使用されなくなります。

    この変数はデフォルトでは無効になっています。 これを有効にすると、ALTER TABLE は時間的カラムを再構築しないため、可能な高速変更を利用できます。

    この変数は非推奨です。将来の MySQL リリースで削除される予定です。

  • back_log

    コマンド行形式 --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

    コマンド行形式 --basedir=dir_name
    システム変数 basedir
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名
    デフォルト値 parent of mysqld installation directory

    MySQL インストールベースディレクトリへのパス。

  • big_tables

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 block_encryption_mode
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 aes-128-ecb

    この変数は、AES などのブロックベースのアルゴリズムのブロック暗号化モードを制御します。 これは AES_ENCRYPT() および AES_DECRYPT() の暗号化に影響します。

    block_encryption_modeaes-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=#
    システム変数 bulk_insert_buffer_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 8388608
    最小値 0
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    MyISAM では、空でないテーブルにデータを追加する際に、INSERT ... SELECTINSERT ... 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

    システム変数 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

    システム変数 character_set_connection
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 utf8mb4

    文字セットイントロデューサなしで指定されたリテラルおよび数値から文字列への変換に使用される文字セット。 イントロデューサについては、セクション10.3.8「文字セットイントロデューサ」 を参照してください。

  • character_set_database

    システム変数 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

    コマンド行形式 --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

    システム変数 character_set_results
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 utf8mb4

    クエリー結果をクライアントに返すために使用される文字セット。 これには、カラム値、結果メタデータ (カラム名など)、エラーメッセージなどの結果データが含まれます。

  • character_set_server

    コマンド行形式 --character-set-server=name
    システム変数 character_set_server
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 utf8mb4

    サーバーのデフォルトの文字セット。 セクション10.15「文字セットの構成」を参照してください。 この変数を設定する場合は、文字セットの照合順序を指定するように collation_server も設定する必要があります。

  • character_set_system

    システム変数 character_set_system
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 utf8

    識別子を格納するためにサーバーで使用される文字セット。 この値は常に utf8 です。

  • character_sets_dir

    コマンド行形式 --character-sets-dir=dir_name
    システム変数 character_sets_dir
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名

    文字セットがインストールされているディレクトリ。 セクション10.15「文字セットの構成」を参照してください。

  • check_proxy_users

    コマンド行形式 --check-proxy-users[={OFF|ON}]
    システム変数 check_proxy_users
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    一部の認証プラグインは、プロキシユーザーマッピングを実装しています (PAM や Windows 認証プラグインなど)。 その他の認証プラグインは、デフォルトではプロキシユーザーをサポートしていません。 その中には、付与されたプロキシ権限に従って、MySQL サーバー自体がプロキシユーザーをマップするようにリクエストできるものがあります: mysql_native_passwordsha256_password

    check_proxy_users システム変数が有効になっている場合、サーバーは、このようなリクエストを行う認証プラグインに対してプロキシユーザーマッピングを実行します。 ただし、サーバープロキシユーザーマッピングのサポートを利用するには、プラグイン固有のシステム変数を有効にする必要がある場合もあります:

    • mysql_native_password プラグインの場合は、mysql_native_password_proxy_users を有効にします。

    • sha256_password プラグインの場合は、sha256_password_proxy_users を有効にします。

    ユーザープロキシの詳細は、セクション6.2.18「プロキシユーザー」 を参照してください。

  • collation_connection

    システム変数 collation_connection
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列

    接続文字セットの照合順序。collation_connection は、リテラル文字列の比較に重要です。 カラム値と文字列を比較する場合、collation_connection は関係ありません。これは、カラムには照合優先度の高い独自の照合があるためです (セクション10.8.4「式での照合の強制性」 を参照)。

  • collation_database

    システム変数 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

    コマンド行形式 --collation-server=name
    システム変数 collation_server
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 utf8mb4_0900_ai_ci

    サーバーのデフォルトの照合順序。 セクション10.15「文字セットの構成」を参照してください。

  • completion_type

    コマンド行形式 --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 COMMITXA ROLLBACK に対して、あるいは autocommit=1 の場合にも適用されません。

  • concurrent_insert

    コマンド行形式 --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_insertNEVER に設定されます。

    セクション8.11.3「同時挿入」も参照してください。

  • connect_timeout

    コマンド行形式 --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

    システム変数 core_file
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    サーバーが予期せず終了した場合にコアファイルを書き込むかどうか。 この変数は --core-file オプションによって設定されます。

  • create_admin_listener_thread

    コマンド行形式 --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=#
    システム変数 cte_max_recursion_depth
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 1000
    最小値 0
    最大値 4294967295

    共通テーブル式 (CTE) の最大再帰深度。 サーバーは、この変数の値よりも多くのレベルを繰り返す CTE の実行を終了します。 詳細は、共通テーブル式の再帰の制限を参照してください。

  • datadir

    コマンド行形式 --datadir=dir_name
    システム変数 datadir
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名

    MySQL サーバーデータディレクトリへのパス。 相対パスは、現在のディレクトリに関して解決されます。 サーバーを自動的に (つまり、事前に現在のディレクトリを認識できないコンテキストで) 起動する場合は、datadir 値を絶対パスとして指定することをお薦めします。

  • debug

    コマンド行形式 --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

    システム変数 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

    コマンド行形式 --default-authentication-plugin=plugin_name
    システム変数 default_authentication_plugin
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    列挙
    デフォルト値 caching_sha2_password
    有効な値

    mysql_native_password

    sha256_password

    caching_sha2_password

    デフォルトの認証プラグイン 次の値を使用できます:

    注記

    MySQL 8.0 では、caching_sha2_passwordmysql_native_password ではなくデフォルトの認証プラグインです。 サーバー操作に対するこの変更の影響、およびサーバーとクライアントおよびコネクタとの互換性の詳細は、優先認証プラグインとしての caching_sha2_password を参照してください。

    default_authentication_plugin の値は、サーバー操作の次の側面に影響します:

    • 認証プラグインを明示的に指定しない CREATE USER および GRANT ステートメントによって作成された新しいアカウントにサーバーが割り当てる認証プラグインを決定します。

    • 次のステートメントで作成されたアカウントの場合、サーバーはそのアカウントをデフォルトの認証プラグインに関連付け、そのプラグインの必要に応じてハッシュされた特定のパスワードをアカウントに割り当てます:

      CREATE USER ... IDENTIFIED BY 'cleartext password';
  • default_collation_for_utf8mb4

    システム変数 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=#
    システム変数 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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 default_week_format
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 0
    最小値 0
    最大値 7

    WEEK() 関数について使用するデフォルトモード値。 セクション12.7「日付および時間関数」を参照してください。

  • delay_key_write

    コマンド行形式 --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_writeOFF に設定されます。

    警告

    --external-locking で外部ロックを有効にした場合、キーの遅延書き込みを使用するテーブルについてのインデックス破損に対する保護はありません。

  • delayed_insert_limit

    コマンド行形式 --delayed-insert-limit=#
    非推奨 はい
    システム変数 delayed_insert_limit
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 100
    最小値 1
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    このシステム変数は非推奨 (DELAYED 挿入はサポートされていないため) であり、将来のリリースで削除される予定です。

  • delayed_insert_timeout

    コマンド行形式 --delayed-insert-timeout=#
    非推奨 はい
    システム変数 delayed_insert_timeout
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 300

    このシステム変数は非推奨 (DELAYED 挿入はサポートされていないため) であり、将来のリリースで削除される予定です。

  • delayed_queue_size

    コマンド行形式 --delayed-queue-size=#
    非推奨 はい
    システム変数 delayed_queue_size
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 1000
    最小値 1
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    このシステム変数は非推奨 (DELAYED 挿入はサポートされていないため) であり、将来のリリースで削除される予定です。

  • disabled_storage_engines

    コマンド行形式 --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 TABLEDROP 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=#
    システム変数 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

    コマンド行形式 --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=#
    システム変数 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_limitN + 1 に設定します。 インデックス統計の使用を無効にし、N に関係なく常にインデックスダイブを使用するには、eq_range_index_dive_limit を 0 に設定します。

    詳細については、複数値比較の等価範囲の最適化を参照してください。

    最適な推定を行うためにテーブルインデックス統計を更新するには、ANALYZE TABLE を使用します。

  • error_count

    メッセージを生成した最後のステートメントから発生したエラーの数。 この変数は読み取り専用です。 セクション13.7.7.17「SHOW ERRORS ステートメント」を参照してください。

  • event_scheduler

    コマンド行形式 --event-scheduler[=value]
    システム変数 event_scheduler
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    列挙
    デフォルト値 ON
    有効な値

    ON

    OFF

    DISABLED

    この変数は、イベントスケジューラを有効または無効にし、起動または停止します。 使用可能なステータス値は、ONOFF および 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

    システム変数 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=#
    システム変数 flush_time
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 0
    最小値 0

    これがゼロ以外の値に設定されると、すべてのテーブルは flush_time 秒ごとに閉じられて、リソースが解放され、フラッシュされていないデータがディスクへ同期されます。 このオプションは、リソースが非常に限定されたシステムでのみ使用することを推奨します。

    注記

    flush が有効な場合、flush_time の値は関係なく、flush_time を変更してもフラッシュ動作には影響しません。

  • foreign_key_checks

    システム変数 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

    コマンド行形式 --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=#
    システム変数 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=#
    システム変数 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=#
    システム変数 ft_query_expansion_limit
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 20
    最小値 0
    最大値 1000

    WITH QUERY EXPANSION を使用して実行する全文検索で使用する最上位の一致の数。

  • ft_stopword_file

    コマンド行形式 --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

    コマンド行形式 --general-log[={OFF|ON}]
    システム変数 general_log
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    一般クエリーログを有効にするかどうか。 値が 0 (または OFF) の場合はログを無効にし、1 (または ON) の場合はログを有効にします。 ログ出力先は log_output システム変数によって制御され、この値を NONE にした場合はログが有効になっていてもログエントリは書き込まれません。

  • general_log_file

    コマンド行形式 --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 USERALTER USER および SET PASSWORD ステートメントに対して生成されるランダムパスワードで許可される最大文字数。 詳細は、ランダムパスワード生成を参照してください。

  • group_concat_max_len

    コマンド行形式 --group-concat-max-len=#
    システム変数 group_concat_max_len
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 1024
    最小値 4
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    GROUP_CONCAT() 関数について許可されるバイト単位の最大の結果の長さ。 デフォルトは 1024 です。

  • have_compress

    zlib 圧縮ライブラリがサーバーで利用できる場合は YES、そうでない場合は NO。 利用できない場合、COMPRESS() および UNCOMPRESS() 関数は使用できません。

  • have_dynamic_loading

    mysqld がプラグインの動的ロードをサポートする場合は YES、そうでない場合は NO。 値が NO の場合、--plugin-load などのオプションを使用してサーバー起動時にプラグインをロードしたり、INSTALL PLUGIN ステートメントを使用して実行時にプラグインをロードしたりすることはできません。

  • have_geometry

    サーバーが空間データ型をサポートする場合は YES、そうでない場合は NO

  • have_openssl

    この変数は、have_ssl のシノニムです。

  • have_profiling

    ステートメントプロファイリング機能が存在する場合は YES、そうでない場合は NO。 存在する場合、この機能を有効または無効にするかが profiling システム変数によって制御されます。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。

    この変数は非推奨であり、将来の MySQL リリースで削除される予定です。

  • have_query_cache

    クエリーキャッシュは MySQL 8.0.3 で削除されました。have_query_cache は非推奨であり、常に NO の値を持ち、将来の MySQL リリースで削除される予定です。

  • have_rtree_keys

    RTREE インデックスを利用できる場合は YES、そうでない場合は NO。 (これらは MyISAM テーブル内の空間インデックスで使用されます。)

  • have_ssl

    システム変数 have_ssl
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列
    有効な値

    YES (SSL サポートが使用可能)

    DISABLED (SSL サポートはサーバーにコンパイルされましたが、有効にするために必要なオプションでサーバーが起動されませんでした)

    YES (mysqld が SSL 接続をサポートしている場合)、DISABLED(サーバーが SSL サポート付きでコンパイルされているが、適切な connection-encryption オプションで起動されていない場合)。 詳細は、セクション2.9.6「SSL ライブラリサポートの構成」を参照してください。

  • have_statement_timeout

    システム変数 have_statement_timeout
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Boolean

    ステートメントの実行タイムアウト機能が使用可能かどうか (ステートメント実行時オプティマイザヒント を参照)。 この機能で使用されるバックグラウンドスレッドを初期化できなかった場合、値は NO になります。

  • have_symlink

    シンボリックリンクサポートを有効化している場合は 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=#
    システム変数 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

    システム変数 hostname
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    サーバーは起動時に、この変数をサーバーホスト名に設定します。 RFC 1034 によると、MySQL 8.0.17 での最大長は 255 文字で、その前は 60 文字です。

  • identity

    この変数は last_insert_id 変数のシノニムです。 これはほかのデータベースシステムとの互換性のために存在します。 この値は SELECT @@identity で読み取ることができ、SET identity で設定できます。

  • init_connect

    コマンド行形式 --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_expiry0 に設定します。

    次の場合、統計カラムのクエリーでは、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

    コマンド行形式 --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 USERGRANT など)、レプリケーションおよびグローバルトランザクション識別子に関連するステートメントが含まれます。 セクション17.1.3「グローバルトランザクション識別子を使用したレプリケーション」を参照してください。

    MySQL 8.0.17 では、サーバーの起動時に作成されたスレッドは、データディクショナリの作成、アップグレード手順の実行、システムテーブルの作成などのタスクに使用されます。 安定した予測可能な環境を確保するために、これらのスレッドは、sql_mode, character_set_server, collation_server, completion_type, explicit_defaults_for_timestampdefault_table_encryption などの一部のシステム変数のサーバー組込みデフォルトを使用して実行されます。

    これらのスレッドは、サーバーの起動時に init_file で指定されたファイル内のステートメントを実行するためにも使用されるため、このようなステートメントは、これらのシステム変数のサーバーに組み込まれたデフォルト値で実行されます。

  • innodb_xxx

    InnoDB システム変数は、セクション15.14「InnoDB の起動オプションおよびシステム変数」にリストされています。 これらの変数は、InnoDB テーブルの記憶域、メモリー使用および I/O パターンの多くの側面を制御し、InnoDB がデフォルトの記憶域エンジンであることが特に重要です。

  • insert_id

    AUTO_INCREMENT 値を挿入するときに、後に続く INSERT または ALTER TABLE ステートメントによって使用される値。 これは主にバイナリログと一緒に使用されます。

  • interactive_timeout

    コマンド行形式 --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=#
    システム変数 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

    コマンド行形式 --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=#
    システム変数 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_requestsKey_readsKey_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=#
    システム変数 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=#
    システム変数 key_cache_block_size
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 1024
    最小値 512
    最大値 16384

    キーキャッシュ内のバイト単位のブロックのサイズ。 デフォルト値は 1024 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。

  • key_cache_division_limit

    コマンド行形式 --key-cache-division-limit=#
    システム変数 key_cache_division_limit
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 100
    最小値 1
    最大値 100

    キーキャッシュバッファーリストのホットサブリストとウォームサブリストの間の分割点。 値は、ウォームサブリスト用に使用するバッファーリストのパーセントです。 許可される値の範囲は 1 から 100 です。 デフォルト値は 100 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。

  • large_files_support

    システム変数 large_files_support
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Boolean

    大きなファイルをサポートするオプションで mysqld をコンパイルしているかどうか。

  • large_pages

    コマンド行形式 --large-pages[={OFF|ON}]
    システム変数 large_pages
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    プラットフォーム固有 Linux
    Boolean
    デフォルト値 OFF

    大規模ページサポートが (--large-pages オプションで) 有効になっているかどうか。 セクション8.12.3.2「ラージページのサポートの有効化」を参照してください。

  • large_page_size

    システム変数 large_page_size
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 0

    大規模ページサポートが有効化されている場合、これはメモリーページのサイズを示します。 ラージメモリーページは Linux でのみサポートされます。他のプラットフォームでは、この変数の値は常に 0 です。 セクション8.12.3.2「ラージページのサポートの有効化」を参照してください。

  • last_insert_id

    LAST_INSERT_ID() から返される値。 これは、テーブルを更新するステートメント内で LAST_INSERT_ID() を使用するときにバイナリログ内に格納されます。 この変数を設定しても、mysql_insert_id() C API 関数によって返される値は更新されません。

  • lc_messages

    コマンド行形式 --lc-messages=name
    システム変数 lc_messages
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 en_US

    エラーメッセージに使用するロケール。 デフォルトは en_US です。 サーバーは引数を言語名に変換し、これを lc_messages_dir の値と組み合わせてエラーメッセージファイルの場所を生成します。 セクション10.12「エラーメッセージ言語の設定」を参照してください。

  • lc_messages_dir

    コマンド行形式 --lc-messages-dir=dir_name
    システム変数 lc_messages_dir
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名

    エラーメッセージが配置されているディレクトリ。 サーバーはこの値を lc_messages の値と一緒に使用して、エラーメッセージファイルの場所を生成します。 セクション10.12「エラーメッセージ言語の設定」を参照してください。

  • lc_time_names

    コマンド行形式 --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

    システム変数 license
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 GPL

    サーバーが持つライセンスのタイプ。

  • local_infile

    コマンド行形式 --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=#
    システム変数 lock_wait_timeout
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 31536000
    最小値 1
    最大値 31536000

    この変数は、メタデータロックを取得するための試行のタイムアウトを秒単位で指定します。 許可される値の範囲は 1 から 31536000 (1 年) です。 デフォルトは 31536000 です。

    このタイムアウトは、メタデータロックを使用するすべてのステートメントに適用されます。 これらには、テーブル、ビュー、ストアドプロシージャー、ストアドファンクションの DML 操作および DDL 操作のほかに、LOCK TABLESFLUSH TABLES WITH READ LOCK、および HANDLER ステートメントが含まれます。

    このタイムアウトは、GRANT または REVOKE ステートメントやテーブルロギングステートメントによって変更される付与テーブルなど、mysql データベース内のシステムテーブルへの暗黙的なアクセスには適用されません。 タイムアウトは、SELECTUPDATE などによって直接アクセスされるシステムテーブルに適用されます。

    タイムアウト値は、メタデータロック試行ごとに別々に適用されます。 ある特定のステートメントが複数のロックを必要とする場合もあるため、タイムアウトエラーを報告する前に、ステートメントが lock_wait_timeout 値よりも長くブロックする可能性もあります。 ロックタイムアウトが発生すると、ER_LOCK_WAIT_TIMEOUT が報告されます。

    lock_wait_timeout では、LOCK INSTANCE FOR BACKUP ステートメントがロックを放棄するまで待機する時間も定義されます。

  • locked_in_memory

    システム変数 locked_in_memory
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ

    mysqld--memlock によってメモリー内でロックされたかどうか。

  • log_error

    コマンド行形式 --log-error[=file_name]
    システム変数 log_error
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ファイル名

    デフォルトのエラーログの保存先。 宛先がコンソールの場合、値は stderr です。 それ以外の場合、宛先はファイルで、log_error 値はファイル名です。 セクション5.4.2「エラーログ」 を参照してください。

  • log_error_services

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 log_error_verbosity
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 2
    最小値 1
    最大値 3

    log_error_verbosity システム変数は、エラーログを対象としたイベントを処理するための冗長性を指定します。 この変数は、デフォルトで有効になっている log_filter_internal エラーログフィルタコンポーネントによって実行されるフィルタリングに影響します (セクション5.5.3「エラーログコンポーネント」 を参照)。 log_filter_internal が無効になっている場合、log_error_verbosity は影響を与えません。

    エラーログを対象としたイベントの優先度は、ERRORWARNING または 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

    コマンド行形式 --log-output=name
    システム変数 log_output
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Set
    デフォルト値 FILE
    有効な値

    TABLE

    FILE

    NONE

    一般クエリーログおよびスロークエリーログ出力の宛先。 値は、TABLEFILE および NONE から選択されたカンマ区切りの単語のリストです。 TABLE は、mysql システムスキーマ内の general_log および slow_log テーブルへのロギングを選択します。 FILE は、ログファイルへのロギングを選択します。 NONE はロギングを無効にします。 値に NONE が存在する場合は、存在する他の単語よりも優先されます。 TABLEFILE の両方を指定して、両方のログ出力先を選択できます。

    この変数は、ログ出力先を選択しますが、ログ出力は有効にしません。 これを行うには、general_log および slow_query_log システム変数を有効にします。 FILE ロギングの場合、general_log_file および slow_query_log_file システム変数によってログファイルの場所が決まります。 詳細については、セクション5.4.1「一般クエリーログおよびスロークエリーログの出力先の選択」を参照してください。

  • log_queries_not_using_indexes

    コマンド行形式 --log-queries-not-using-indexes[={OFF|ON}]
    システム変数 log_queries_not_using_indexes
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    スロークエリーログを有効にしてこの変数を有効にすると、すべての行を取得すると予想されるクエリーがログに記録されます。 セクション5.4.5「スロークエリーログ」を参照してください。 このオプションは、インデックスが使用されないことを必ずしも意味するわけではありません。 たとえば、フルインデックススキャンを使用するクエリーはインデックスを使用しますが、インデックスは行数を制限しないため、クエリーはログに記録されます。

  • log_raw

    コマンド行形式 --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

    コマンド行形式 --log-slow-admin-statements[={OFF|ON}]
    システム変数 log_slow_admin_statements
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    スロークエリーログに書き込まれるステートメントにスロー管理ステートメントを含めます。 管理ステートメントには、ALTER TABLEANALYZE TABLECHECK TABLECREATE INDEXDROP INDEXOPTIMIZE TABLE、および REPAIR TABLE が含まれます。

  • log_slow_extra

    コマンド行形式 --log-slow-extra[={OFF|ON}]
    導入 8.0.14
    システム変数 log_slow_extra
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    スロークエリーログが有効で、出力先に FILE が含まれている場合、サーバーはスローステートメントに関する情報を提供する追加のフィールドをログファイル行に書き込みます。 セクション5.4.5「スロークエリーログ」を参照してください。 TABLE 出力は影響を受けません。

  • log_syslog

    コマンド行形式 --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

    コマンド行形式 --log-syslog-facility=value
    削除 8.0.13
    システム変数 log_syslog_facility
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 daemon

    この変数は MySQL 8.0.13 で削除され、syseventlog.facility に置き換えられました。

  • log_syslog_include_pid

    コマンド行形式 --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

    コマンド行形式 --log-syslog-tag=tag
    削除 8.0.13
    システム変数 log_syslog_tag
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 empty string

    この変数は MySQL 8.0.13 で削除され、syseventlog.tag に置き換えられました。

  • log_timestamps

    コマンド行形式 --log-timestamps=#
    システム変数 log_timestamps
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    列挙
    デフォルト値 UTC
    有効な値

    UTC

    SYSTEM

    この変数は、エラーログに書き込まれるメッセージのタイムスタンプ、およびファイルに書き込まれる一般的なクエリーログメッセージとスロークエリーログメッセージのタイムゾーンを制御します。 一般クエリーログおよびテーブル (mysql.general_logmysql.slow_log) に書き込まれるスロークエリーログメッセージのタイムゾーンには影響しません。 これらのテーブルから取得された行は、CONVERT_TZ() を使用するか、セッションの time_zone システム変数を設定することで、ローカルシステムのタイムゾーンから任意のタイムゾーンに変換できます。

    許可される log_timestamps 値は、UTC (デフォルト) および SYSTEM (ローカルシステムのタイムゾーン) です。

    タイムスタンプは ISO 8601 / RFC 3339 形式を使用して書き込まれます: YYYY-MM-DDThh:mm:ss.uuuuuu に Zulu 時間 (UTC) または±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=#
    システム変数 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

    コマンド行形式 --low-priority-updates[={OFF|ON}]
    システム変数 low_priority_updates
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    1 に設定された場合、すべての INSERTUPDATEDELETE、および LOCK TABLE WRITE ステートメントは、影響を受けるテーブルでの保留中の SELECT または LOCK TABLE READ がなくなるまで待機します。 {INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ... を使用して同じ効果を得て、クエリーの優先度を下げることができます。 この変数は、テーブルレベルのロック (MyISAMMEMORYMERGE など) のみを使用するストレージエンジンにのみ影響します。 セクション8.11.2「テーブルロックの問題」を参照してください。

  • lower_case_file_system

    システム変数 lower_case_file_system
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Boolean

    この変数は、データディレクトリが配置されているファイルシステムでのファイル名の大文字小文字の区別を示します。 OFF では、ファイル名は大/小文字が区別され、ON では大/小文字が区別されません。 この変数は、ファイルシステム属性を反映するため読み取り専用で、変数を設定してもファイルシステムに影響しません。

  • lower_case_table_names

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 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=#
    システム変数 max_connect_errors
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 100
    最小値 1
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    正常に接続されずにホストからの max_connect_errors の連続した接続リクエストが中断されると、サーバーはそのホストをそれ以降の接続からブロックします。 前回の接続が中断された後、max_connect_errors の試行回数より少ない時間内にホストからの接続が正常に確立された場合、ホストのエラー数はゼロにクリアされます。 ブロックされたホストのブロックを解除するには、ホストキャッシュをフラッシュします。ホストキャッシュのフラッシュ を参照してください。

  • max_connections

    コマンド行形式 --max-connections=#
    システム変数 max_connections
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 151
    最小値 1
    最大値 100000

    許可される最大のクライアントの同時接続数。 詳細は、セクション5.1.12.1「接続インタフェース」を参照してください。

  • max_delayed_threads

    コマンド行形式 --max-delayed-threads=#
    非推奨 はい
    システム変数 max_delayed_threads
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 20
    最小値 0
    最大値 16384

    このシステム変数は非推奨です (DELAYED の挿入はサポートされていないため)。将来のリリースで削除される予定です。

  • max_digest_length

    コマンド行形式 --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_lengthmax_digest_length より小さい場合、パフォーマンススキーマに格納されているダイジェスト値は、元のダイジェスト値と比較して切り捨てられます。

    ステートメントダイジェストの詳細については、セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。

  • max_error_count

    コマンド行形式 --max-error-count=#
    システム変数 max_error_count
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 1024
    最小値 0
    最大値 65535

    SHOW ERRORS および SHOW WARNINGS ステートメントで表示するために格納されるエラー、警告および情報メッセージの最大数。 これは診断領域内の条件領域の数と同じで、GET DIAGNOSTICS によって調査できる条件数と同じです。

  • max_execution_time

    コマンド行形式 --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=#
    システム変数 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

    非推奨 はい
    システム変数 max_insert_delayed_threads
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer

    この変数は、max_delayed_threads のシノニムです。

    このシステム変数は非推奨です (DELAYED の挿入はサポートされていないため)。将来のリリースで削除される予定です。

  • max_join_size

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 max_points_in_geometry
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 65536
    最小値 3
    最大値 1048576

    ST_Buffer_Strategy() 関数に対する points_per_circle 引数の最大値。

  • max_prepared_stmt_count

    コマンド行形式 --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=#
    システム変数 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=#
    システム変数 max_sort_length
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 1024
    最小値 4
    最大値 8388608

    データ値をソートするときに使用するバイト数。 サーバーは、各値の最初の max_sort_length バイトのみを使用し、残りは無視します。 したがって、最初の max_sort_length バイトの後にのみ異なる値は、GROUP BYORDER BY および DISTINCT 操作で等しいと比較されます。

    max_sort_length の値を増やすには、sort_buffer_size の値も増やす必要があります。 詳細は、セクション8.2.1.16「ORDER BY の最適化」を参照してください

  • max_sp_recursion_depth

    コマンド行形式 --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=#
    システム変数 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=#
    システム変数 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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 min_examined_row_limit
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 0
    最小値 0
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    これよりも少ない行数を検査するクエリーは、スロークエリーログに記録されません。

  • myisam_data_pointer_size

    コマンド行形式 --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=#
    システム変数 myisam_max_sort_file_size
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 (Windows) 2146435072
    デフォルト値 (その他, 64 ビットプラットフォーム) 9223372036853727232
    デフォルト値 (その他, 32 ビットプラットフォーム) 2147483648
    最大値 (Windows) 2146435072
    最大値 (その他, 64 ビットプラットフォーム) 9223372036853727232
    最大値 (その他, 32 ビットプラットフォーム) 2147483648

    MyISAM インデックスの再作成時 (REPAIR TABLEALTER TABLE または LOAD DATA) に MySQL で使用できる一時ファイルの最大サイズ。 ファイルサイズがこの値より大きい場合、さらに低速なキーキャッシュを代わりに使用してインデックスが作成されます。 値はバイト単位で指定されます。

    MyISAM インデックスファイルがこのサイズを超えて、ディスクスペースが使用できる場合、この値を大きくするとパフォーマンスが向上することがあります。 このスペースは、元のインデックスファイルが配置されているディレクトリを含むファイルシステム内で利用する必要があります。

  • myisam_mmap_size

    コマンド行形式 --myisam-mmap-size=#
    システム変数 myisam_mmap_size
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 (64 ビットプラットフォーム) 18446744073709551615
    デフォルト値 (32 ビットプラットフォーム) 4294967295
    最小値 7
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    圧縮された MyISAM ファイルのメモリーマッピングに使用する最大のメモリー量。 圧縮された MyISAM テーブルが多く使用される場合、この値を減らすことで、メモリースワッピングの問題が生じるおそれを低下できます。

  • myisam_recover_options

    コマンド行形式 --myisam-recover-options[=list]
    システム変数 myisam_recover_options
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    列挙
    デフォルト値 OFF
    有効な値

    OFF

    DEFAULT

    BACKUP

    FORCE

    QUICK

    MyISAM のストレージエンジンのリカバリモードを設定します。 変数値は、OFF, DEFAULT, BACKUP, FORCE または QUICK の値の任意の組合せです。 複数の値を指定する場合、値をカンマで区切ります。 サーバー起動時に値なしで変数を指定することは DEFAULT を指定することと同じで、明示的な値を""に指定するとリカバリが無効になります (OFF の値と同じ)。 リカバリが有効な場合、mysqldMyISAM テーブルをオープンするたび、テーブルがクラッシュしたというマークが付いているか、テーブルが正しくクローズしなかったかどうかをチェックします。 (最後のオプションは外部ロックを無効にして実行している場合のみ機能します。) このような場合、mysqld はテーブル上でチェックを実行します。 テーブルが破損していた場合、mysqld は修復を試みます。

    次のオプションは修復の動作方法に影響します。

    オプション 説明
    OFF リカバリなし。
    DEFAULT バックアップ、強制、クイックチェックを行わないリカバリ。
    BACKUP データファイルがリカバリ中に変更された場合、tbl_name.MYD ファイルのバックアップを tbl_name-datetime.BAK として保存します。
    FORCE .MYD ファイルから複数のレコードがなくなる場合でもリカバリを実行します。
    QUICK 削除ブロックがない場合、テーブルの行をチェックしません。

    サーバーがテーブルを自動的に修復する前に、サーバーは修復に関するメモをエラーログに書き込みます。 ユーザーが介入せずにほとんどの問題をリカバリできるようにするには、BACKUP,FORCE オプションを使用します。 これにより、一部の行が削除される場合でもテーブルの修復を強制しますが、古いデータファイルをバックアップとして保持しているため、何が発生したかをあとで検査できます。

    セクション16.2.1「MyISAM 起動オプション」を参照してください。

  • myisam_repair_threads

    コマンド行形式 --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=#
    システム変数 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

    コマンド行形式 --myisam-stats-method=name
    システム変数 myisam_stats_method
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    列挙
    デフォルト値 nulls_unequal
    有効な値

    nulls_equal

    nulls_unequal

    nulls_ignored

    MyISAM テーブルのインデックス値の分布に関する統計を収集するときに、サーバーが NULL 値を扱う方法。 この変数は、nulls_equalnulls_unequal、および nulls_ignored の 3 つの値を指定できます。 nulls_equal の場合、すべての NULL インデックス値を同等として扱い、NULL 値の数とサイズが同等の単一値グループを生成します。 nulls_unequal の場合、NULL 値同士を同等として扱わず、それぞれの NULL はサイズが 1 の別個のグループを生成します。 nulls_ignored の場合、NULL 値は無視されます。

    テーブル統計を生成するために使用する方法は、セクション8.3.8「InnoDB および MyISAM インデックス統計コレクション」に記載されているように、オプティマイザがクエリー実行のためのインデックスを選択する方法に影響を与えます。

  • myisam_use_mmap

    コマンド行形式 --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

    コマンド行形式 --named-pipe[={OFF|ON}]
    システム変数 named_pipe
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    プラットフォーム固有 Windows
    Boolean
    デフォルト値 OFF

    (Windows のみ。) サーバーが名前付きパイプでの接続をサポートしているかどうかを指定します。

  • named_pipe_full_access_group

    コマンド行形式 --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=#
    システム変数 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=#
    システム変数 net_read_timeout
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 30
    最小値 1

    読み取りを中止する前に接続からのデータを待機する秒数。 サーバーがクライアントからの読み込みを行うとき、net_read_timeout は中止するタイミングを制御するタイムアウト値です。 サーバーがクライアントに書き込みを行うとき、net_write_timeout は中止するタイミングを制御するタイムアウト値です。 slave_net_timeoutも参照してください。

  • net_retry_count

    コマンド行形式 --net-retry-count=#
    システム変数 net_retry_count
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 10
    最小値 1
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    通信ポートでの読み取りまたは書き込みが中断された場合、停止するまでこの回数だけ再試行します。 FreeBSD では内部の中断がすべてのスレッドに送信されるため、この値をきわめて高く設定するようにしてください。

  • net_write_timeout

    コマンド行形式 --net-write-timeout=#
    システム変数 net_write_timeout
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 60
    最小値 1

    書き込みを中止する前にブロックが接続に書き込まれるのを待機する秒数。 net_read_timeout も参照してください。

  • new

    コマンド行形式 --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=#
    システム変数 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

    コマンド行形式 --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_modeON から OFF に変更します。 オフラインモードでは、アクセスを拒否されたクライアントは ER_SERVER_OFFLINE_MODE エラーを受け取ります。

  • old

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 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=#
    システム変数 optimizer_prune_level
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 1
    最小値 0
    最大値 1

    見込みのない部分的プランをオプティマイザ検索スペースから削除するために、クエリー最適化中に適用される経験則を制御します。 値 0 は、オプティマイザが網羅的な検索を実行できるよう経験則を無効にします。 値 1 は、中間プランによって取得された行の数に基づいて、オプティマイザにプランを削除させます。

  • optimizer_search_depth

    コマンド行形式 --optimizer-search-depth=#
    システム変数 optimizer_search_depth
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 62
    最小値 0
    最大値 62

    クエリーオプティマイザによって実行される検索の最大の深さ。 クエリー内の関係の数より値が大きいと、適切なクエリー計画が得られますが、クエリーの実行計画の生成に時間がかかります。 クエリー内の関係の数より値が小さいと、実行プランがすばやく返されますが、結果のプランがまったく最適にならないことがあります。 0 に設定された場合、システムは合理的な値を自動的に選択します。

  • optimizer_switch

    コマンド行形式 --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

    コマンド行形式 --optimizer-trace=value
    システム変数 optimizer_trace
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列

    この変数はオプティマイザのトレースを制御します。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。

  • optimizer_trace_features

    コマンド行形式 --optimizer-trace-features=value
    システム変数 optimizer_trace_features
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列

    この変数は選択されたオプティマイザトレース機能を有効または無効にします。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。

  • optimizer_trace_limit

    コマンド行形式 --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=#
    システム変数 optimizer_trace_max_mem_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer
    デフォルト値 1048576

    格納されるオプティマイザトレースの最大累積サイズ。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。

  • optimizer_trace_offset

    コマンド行形式 --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=#
    システム変数 parser_max_mem_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 (64 ビットプラットフォーム) 18446744073709551615
    デフォルト値 (32 ビットプラットフォーム) 4294967295
    最小値 10000000
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    パーサーで使用可能なメモリーの最大量。 デフォルト値では、使用可能なメモリーに制限はありません。 この値を減らして、長い SQL ステートメントまたは複雑な SQL ステートメントの解析によって生じるメモリー不足の状況から保護できます。

  • partial_revokes

    コマンド行形式 --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=#
    システム変数 password_history
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 0
    最小値 0
    最大値 4294967295

    この変数は、必要な最小パスワード変更数に基づいて以前のパスワードの再利用を制御するグローバルポリシーを定義します。 以前に使用されたアカウントパスワードの場合、この変数は、パスワードを再利用する前に発生する必要がある後続のアカウントパスワード変更の数を示します。 値が 0 (デフォルト) の場合、パスワード変更の数に基づく再利用制限はありません。

    この変数への変更は、PASSWORD HISTORY DEFAULT オプションで定義されたすべてのアカウントにただちに適用されます。

    CREATE USER ステートメントおよび ALTER USER ステートメントの PASSWORD HISTORY オプションを使用して、個々のアカウントに対して必要に応じて変更のグローバル数のパスワード再利用ポリシーをオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。

  • password_require_current

    コマンド行形式 --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=#
    システム変数 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

    コマンド行形式 --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 PERSISTSET 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

    コマンド行形式 --pid-file=file_name
    システム変数 pid_file
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ファイル名

    サーバーがプロセス ID を書き込むファイルのパス名。 サーバーは、別のディレクトリを指定する絶対パス名が指定されないかぎり、データディレクトリ内にファイルを作成します。 この変数を指定する場合は、値を指定する必要があります。 この変数を指定しない場合、MySQL はデフォルト値の host_name.pid を使用します。host_name はホストマシンの名前です。

    プロセス ID ファイルは、mysqld_safe などの他のプログラムでサーバープロセス ID を決定するために使用されます。 Windows では、この変数はデフォルトのエラーログファイル名にも影響します。 セクション5.4.2「エラーログ」 を参照してください。

  • plugin_dir

    コマンド行形式 --plugin-dir=dir_name
    システム変数 plugin_dir
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名
    デフォルト値 BASEDIR/lib/plugin

    プラグインディレクトリのパス名。

    プラグインディレクトリがサーバーによって書き込み可能な場合、ユーザーは SELECT ... INTO DUMPFILE を使用して、ディレクトリ内のファイルに実行可能コードを書き込むことができます。 これを回避するには、plugin_dir をサーバーに対して読取り専用にするか、SELECT 書込みを安全に行うことができるディレクトリに secure_file_priv を設定します。

  • port

    コマンド行形式 --port=port_num
    システム変数 port
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 3306
    最小値 0
    最大値 65535

    サーバーが TCP/IP 接続を listen するポートの数。 この変数は、--port オプションで設定できます。

  • preload_buffer_size

    コマンド行形式 --preload-buffer-size=#
    システム変数 preload_buffer_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 32768
    最小値 1024
    最大値 1073741824

    インデックスをプリロードしたときに割り当てられるバッファーのサイズ。

  • print_identified_with_as_hex

    コマンド行形式 --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 進数文字列などのハッシュ値が表示されます。 印刷できない文字を含まないハッシュ値は、この変数が有効になっていても、通常の文字列リテラルとして表示されます。

  • profiling

    0 または OFF (デフォルト) に設定した場合、ステートメントのプロファイリングは無効になります。 1 または ON に設定した場合、ステートメントのプロファイリングは有効になり、SHOW PROFILE および SHOW PROFILES ステートメントはプロファイリング情報へのアクセスを提供します。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。

    この変数は非推奨です。将来の MySQL リリースで削除される予定です。

  • profiling_history_size

    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

    システム変数 protocol_version
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Integer

    MySQL Server によって使用されるクライアント/サーバープロトコルのバージョン。

  • proxy_user

    システム変数 proxy_user
    スコープ セッション
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    現在のクライアントが別のユーザーのプロキシの場合、この変数はプロキシユーザーのアカウント名です。 そうでない場合、この変数は NULL です。 セクション6.2.18「プロキシユーザー」を参照してください。

  • pseudo_slave_mode

    システム変数 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

    システム変数 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=#
    システム変数 query_alloc_block_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 8192
    最小値 1024
    最大値 4294967295
    単位 bytes
    ブロックサイズ 1024

    ステートメントの解析および実行中に作成されたオブジェクトに割り当てられるメモリーブロックの割当てサイズ (バイト)。 メモリーのフラグメント化について問題がある場合、このパラメータを増やすと役立つ場合があります。

  • query_prealloc_size

    コマンド行形式 --query-prealloc-size=#
    システム変数 query_prealloc_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 8192
    最小値 8192
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295
    ブロックサイズ 1024

    ステートメントの解析および実行に使用される永続バッファのサイズ (バイト単位)。 このバッファーは、ステートメント間で解放されません。 複雑なクエリーを発行する場合、query_prealloc_size の値を大きくすると、クエリー実行操作時にサーバーがメモリー割り当てを実行する必要性が低くなるため、パフォーマンスの向上に役立つ場合があります。

  • rand_seed1

    システム変数 rand_seed1
    スコープ セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer

    rand_seed1 および rand_seed2 変数は、セッション変数としてのみ存在し、設定はできますが読み取ることはできません。 変数は SHOW VARIABLES の出力に表示されますが、その値は表示されません。

    これらの変数の目的は、RAND() 関数のレプリケーションをサポートすることです。 RAND() を起動するステートメントの場合、ソースはレプリカに 2 つの値を渡し、そこでランダム番号ジェネレータのシードに使用されます。 レプリカは、これらの値を使用して、レプリカ上の RAND() がソースと同じ値を生成するように、rand_seed1 および rand_seed2 のセッション変数を設定します。

  • rand_seed2

    rand_seed1 の説明を参照してください。

  • range_alloc_block_size

    コマンド行形式 --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=#
    システム変数 range_optimizer_max_mem_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 8388608
    最小値 0
    最大値 18446744073709551615

    範囲オプティマイザのメモリー消費の制限。 値 0 は 制限なしを表します。 オプティマイザによって考慮される実行計画で範囲アクセス方法が使用されているが、オプティマイザはこの方法に必要なメモリー量が制限を超えると見積もった場合、計画を破棄し、他の計画を考慮します。 詳細は、範囲最適化のためのメモリー使用の制限を参照してください。

  • rbr_exec_mode

    システム変数 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=#
    システム変数 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

    コマンド行形式 --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_onlyON に設定すると、read_only は暗黙的に ON に強制されます。

    • read_onlyOFF に設定すると、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=#
    システム変数 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=#
    システム変数 regexp_stack_limit
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 8000000
    最小値 0
    最大値 2147483647

    REGEXP_LIKE() および同様の関数によって実行される正規表現照合操作に使用される内部スタックの最大使用可能メモリー (バイト)。セクション12.8.2「正規表現」 を参照してください。

  • regexp_time_limit

    コマンド行形式 --regexp-time-limit=#
    システム変数 regexp_time_limit
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 32
    最小値 0
    最大値 2147483647

    REGEXP_LIKE() および同様の関数によって実行される正規表現照合操作の時間制限 (セクション12.8.2「正規表現」 を参照)。 この制限は、照合エンジンによって実行されるステップの最大許容数として表されるため、実行時間に間接的にのみ影響します。 通常はミリ秒の順序で表示されます。

  • require_row_format

    導入 8.0.19
    システム変数 require_row_format
    スコープ セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    この変数は、レプリケーションおよび mysqlbinlog による内部サーバーの使用に使用されます。 セッションで実行される DML イベントは、行ベースのバイナリロギング形式でエンコードされたイベントのみに制限され、一時テーブルは作成できません。 制限に従わないクエリーは失敗します。

    このシステム変数のセッション値を ON に設定する場合、権限は必要ありません。 このシステム変数のセッション値を OFF に設定することは制限された操作であり、セッションユーザーには制限されたセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。

  • require_secure_transport

    コマンド行形式 --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

    システム変数 resultset_metadata
    スコープ セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    列挙
    デフォルト値 FULL
    有効な値

    FULL

    NONE

    メタデータ転送がオプションの接続の場合、クライアントは resultset_metadata システム変数を設定して、サーバーが結果セットのメタデータを返すかどうかを制御します。 許可される値は、FULL (すべてのメタデータを返します。これがデフォルトです) および NONE (メタデータを返しません) です。

    メタデータ以外の接続の場合、resultset_metadataNONE に設定するとエラーが発生します。

    結果セットのメタデータ転送の管理の詳細は、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=#
    システム変数 schema_definition_cache
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 256
    最小値 256
    最大値 524288

    ディクショナリオブジェクトキャッシュに保持できるスキーマ定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。

    未使用のスキーマ定義オブジェクトは、使用中の数が schema_definition_cache で定義されている容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。

    0 の設定は、スキーマ定義オブジェクトが使用中にディクショナリオブジェクトキャッシュにのみ保持されることを意味します。

    詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。

  • secure_file_priv

    コマンド行形式 --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

    コマンド行形式 --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_sizeread_buffer_size のデフォルト値、最大値および最小値は同じです。) select_into_disk_sync_delay を使用して、後で同期が発生するたびに監視されるタイムアウトを設定することもできます。

  • select_into_disk_sync

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --session-track-schema[={OFF|ON}]
    システム変数 session_track_schema
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 ON

    現在のセッション内でデフォルトスキーマ (データベース) が設定されたときにサーバーが追跡し、スキーマ名を使用可能にするようクライアントに通知するかどうかを制御します。

    スキーマ名トラッカが有効な場合、新しいスキーマ名が古いスキーマ名と同じであっても、デフォルトスキーマが設定されるたびに名前通知が発生します。

    セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。

  • session_track_state_change

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --shared-memory[={OFF|ON}]
    システム変数 shared_memory
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    プラットフォーム固有 Windows
    Boolean
    デフォルト値 OFF

    (Windows のみ。) サーバーが共有メモリー接続を許可するかどうか。

  • shared_memory_base_name

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --show-old-temporals[={OFF|ON}]
    非推奨 はい
    システム変数 show_old_temporals
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    SHOW CREATE TABLE 出力に、5.6.4 より前の形式で検出された時間的カラムにフラグを付けるコメントが含まれるかどうか (TIMEDATETIME および 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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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
    システム変数 skip_show_database
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ

    これは、SHOW DATABASES 権限を持っていないユーザーが SHOW DATABASES ステートメントを使用することを防ぎます。 ほかのユーザーに属するデータベースをユーザーが表示できることに不安がある場合に、セキュリティーを高めることができます。 この効果は SHOW DATABASES 権限によって異なります。変数の値が ON の場合、SHOW DATABASES ステートメントは SHOW DATABASES 権限を持つユーザーにのみ許可され、ステートメントはすべてのデータベース名を表示します。 値が OFF の場合、SHOW DATABASES はすべてのユーザーに許可されますが、ユーザーが SHOW DATABASES またはほかの権限を持つデータベースの名前のみが表示されます。

    注意

    静的グローバル権限はすべてのデータベースに対する権限とみなされるため、静的グローバル権限を使用すると、ユーザーは、部分的な取消しによってデータベースレベルで制限されているデータベースを除き、SHOW DATABASES を使用するか、INFORMATION_SCHEMASCHEMATA テーブルを調べることで、すべてのデータベース名を表示できます。

  • slow_launch_time

    コマンド行形式 --slow-launch-time=#
    システム変数 slow_launch_time
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 2

    スレッドを作成する時間がこの秒数より長くかかると、サーバーは Slow_launch_threads ステータス変数を増やします。

  • slow_query_log

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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=#
    システム変数 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

    システム変数 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_nullOFF に設定することで無効にできます。

    MySQL 8.0.16 より前は、WHERE auto_col IS NULL から WHERE auto_col = LAST_INSERT_ID() への変換はステートメントの実行時にのみ実行されていたため、実行中の sql_auto_is_null の値によってクエリーが変換されたかどうかが判断されました。 MySQL 8.0.16 以降では、ステートメントの準備中に変換が実行されます。

    sql_auto_is_null のデフォルト値は OFF です。

  • sql_big_selects

    システム変数 sql_big_selects
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Boolean
    デフォルト値 ON

    OFF に設定されている場合、MySQL は、実行に非常に時間がかかる可能性が高い SELECT ステートメント (つまり、オプティマイザが調査対象の行数が max_join_size の値を超えていると見積もるステートメント) を中断します。 これは、推奨されない WHERE ステートメントが発行されたときに便利です。 新しい接続のデフォルト値は ON で、すべての SELECT ステートメントが許可されます。

    max_join_size システム変数を DEFAULT 以外の値に設定すると、sql_big_selectsOFF に設定されます。

  • sql_buffer_result

    システム変数 sql_buffer_result
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Boolean
    デフォルト値 OFF

    有効にすると、sql_buffer_resultSELECT ステートメントの結果を一時テーブルに強制的に配置します。 これは、MySQL でテーブルロックを早期に解放するのに役立ち、クライアントに結果を送信するのに長い時間がかかる場合に適していることがあります。 デフォルト値は OFF です。

  • sql_log_off

    システム変数 sql_log_off
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF
    有効な値

    OFF (ロギングの有効化)

    ON (ロギングの無効化)

    この変数は、一般クエリーログへのロギングを現在のセッションで無効にするかどうかを制御します (一般クエリーログ自体が有効になっていると仮定します)。 デフォルト値は OFF です (つまり、ロギングを有効にします)。 現在のセッションの一般クエリーロギングを無効または有効にするには、セッション sql_log_off 変数を ON または OFF に設定します。

    このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。

  • sql_mode

    コマンド行形式 --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

    システム変数 sql_notes
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 ON

    有効 (デフォルト) にすると、Note レベルの診断によって warning_count が増分され、サーバーによって記録されます。 無効にした場合、Note 診断では warning_count が増分されず、サーバーでは記録されません。mysqldump には、ダンプファイルをリロードしてもリロード操作の整合性に影響しないイベントの警告が生成されないように、この変数を無効にする出力が含まれています。

  • sql_quote_show_create

    システム変数 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

    コマンド行形式 --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

    システム変数 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

    システム変数 sql_select_limit
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Integer

    SELECT ステートメントから返される最大行数。 詳細は、セーフ更新モードの使用 (--safe-updates)を参照してください。

    新規接続についてのデフォルト値は、サーバーがテーブルあたりで許可する最大行数です。 標準的なデフォルト値は (232)−1 または (264)−1 です。 制限を変更した場合、デフォルト値は DEFAULT の値を割り当てることでリストアできます。

    SELECTLIMIT 句がある場合、LIMITsql_select_limit の値に優先されます。

  • sql_warnings

    システム変数 sql_warnings
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    この変数は、警告が発生する場合に、単一行の INSERT ステートメントが情報文字列を生成するかどうかを制御します。 デフォルトは OFF です。 情報文字列を生成するには、値を ON に設定します。

  • ssl_ca

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --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

    コマンド行形式 --ssl-fips-mode={OFF|ON|STRICT}
    システム変数 ssl_fips_mode
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    列挙
    デフォルト値 OFF
    有効な値

    OFF (または 0)

    ON (または 1)

    STRICT (または 2)

    サーバー側で FIPS モードを有効にするかどうかを制御します。 ssl_fips_mode システム変数は、暗号化された接続をサーバーが許可するかどうかの制御には使用されず、許可される暗号化操作に影響する点で、他の ssl_xxx システム変数とは異なります。 セクション6.8「FIPS のサポート」を参照してください。

    次の ssl_fips_mode 値を使用できます:

    • OFF (or 0): FIPS モードを無効にします。

    • ON (or 1): FIPS モードを有効にします。

    • STRICT (or 2): strict FIPS モードを有効にします。

    注記

    OpenSSL FIPS オブジェクトモジュールが使用できない場合、ssl_fips_mode に許可される値は OFF のみです。 この場合、起動時に ssl_fips_modeON または STRICT に設定すると、サーバーでエラーメッセージが生成されて終了します。

  • ssl_key

    コマンド行形式 --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=#
    システム変数 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

    コマンド行形式 --super-read-only[={OFF|ON}]
    システム変数 super_read_only
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 OFF

    read_only システム変数が有効になっている場合、サーバーは、CONNECTION_ADMIN 権限 (または非推奨の SUPER 権限) を持つユーザー以外のクライアント更新を許可しません。 super_read_only システム変数も有効になっている場合、サーバーは CONNECTION_ADMIN または SUPER を持つユーザーからのクライアント更新を禁止します。 読取り専用モードの説明および read_onlysuper_read_only の相互作用の詳細は、read_only システム変数の説明を参照してください。

    super_read_only が有効になっているときにクライアントの更新を防止するには、CREATE FUNCTION (UDF のインストール)、INSTALL PLUGININSTALL COMPONENT など、必ずしも更新ではないように見える操作を含めます。 これらの操作は、mysql システムスキーマのテーブルへの変更を伴うため禁止されています。

    レプリケーションソースサーバー上の super_read_only への変更は、複製サーバーにレプリケートされません。 この値は、ソースの設定とは無関係にレプリカに設定できます。

  • syseventlog.facility

    コマンド行形式 --syseventlog.facility=value
    導入 8.0.13
    システム変数 syseventlog.facility
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 daemon

    syslog に書き込まれるエラーログ出力の機能 (メッセージを送信しているプログラムのタイプ)。 この変数は、log_sink_syseventlog エラーログコンポーネントがインストールされていないかぎり使用できません。 セクション5.4.2.8「システムログへのエラーロギング」を参照してください。

    許可される値はオペレーティングシステムによって異なります。システムの syslog ドキュメントを参照してください。

    この変数は Windows には存在しません。

  • syseventlog.include_pid

    コマンド行形式 --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

    コマンド行形式 --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-tag (または Windows の場合は MySQL-tag ) が生成されます。

    Windows で、まだ存在しないタグを使用するには、管理者権限を持つアカウントからサーバーを実行して、タグのレジストリエントリの作成を許可する必要があります。 タグがすでに存在する場合、昇格された権限は必要ありません。

  • system_time_zone

    システム変数 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=#
    システム変数 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=#
    システム変数 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=#
    システム変数 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=#
    システム変数 tablespace_definition_cache
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 256
    最小値 256
    最大値 524288

    ディクショナリオブジェクトキャッシュに保持できるテーブルスペース定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。

    未使用のテーブルスペース定義オブジェクトは、使用中の数が tablespace_definition_cache で定義されている容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。

    0 を設定すると、テーブルスペース定義オブジェクトは、使用中はディクショナリオブジェクトキャッシュにのみ保持されます。

    詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。

  • temptable_max_mmap

    コマンド行形式 --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=#
    システム変数 temptable_max_ram
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 1073741824
    最小値 2097152
    最大値 2^64-1

    TempTable ストレージエンジンがディスクへのデータの格納を開始する前に占有できるメモリーの最大量を定義します。 デフォルト値は 1073741824 バイト (1GiB) です。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。

  • temptable_use_mmap

    コマンド行形式 --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=#
    システム変数 thread_cache_size
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 -1 (自動サイズ設定を示します。このリテラル値を割り当てないでください)
    最小値 0
    最大値 16384

    サーバーが再使用のためにキャッシュするスレッドの数。 クライアントが接続を切断したとき、スレッド数が thread_cache_size より少なければ、クライアントのスレッドはキャッシュに配置されます。 スレッドのリクエストは、可能であれば、キャッシュからのスレッドを再使用することによって満たされ、キャッシュが空の場合のみ新しいスレッドが作成されます。 多くの新しい接続がある場合、この変数を増やしてパフォーマンスを向上できます。 スレッドの実装が適切な場合、通常はパフォーマンスが著しく改善されることはありません。 ただし、1 秒あたり数百件の接続がサーバーで見られる場合、通常は thread_cache_size を十分に高く設定すると、ほとんどの新しい接続でキャッシュされたスレッドを使用できます。 ステータス変数 ConnectionsThreads_created の差異を調査することで、スレッドキャッシュの効率性を確認できます。 詳細は、セクション5.1.10「サーバーステータス変数」を参照してください。

    デフォルト値は次の式に基づいており、上限は 100 に制限されています。

    8 + (max_connections / 100)
  • thread_handling

    コマンド行形式 --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=#
    システム変数 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=#
    システム変数 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=#
    システム変数 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=#
    システム変数 thread_pool_stall_limit
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 6
    最小値 4
    最大値 600

    この変数はステートメントの実行に影響します。 この値は、ステートメントが実行を開始したあと、ステートメントが停滞していると定義される前に終了する時間量で、その時点で、スレッドプールはスレッドグループは別のステートメントの実行の開始を許可します。 値は 10 ミリ秒単位で測定されるため、デフォルトの 6 は 60ms を意味します。 待機の値が短いと、スレッドはよりすみやかに開始できます。 短い値はデッドロック状況を回避により適しています。 長い待機の値は、長時間実行するステートメントを含むワークロードで有用で、現在のステートメントの実行時に多数の新しいステートメントが開始しないようにします。

    この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。

  • thread_stack

    コマンド行形式 --thread-stack=#
    システム変数 thread_stack
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 (64 ビットプラットフォーム) 286720
    デフォルト値 (32 ビットプラットフォーム) 221184
    最小値 131072
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295
    ブロックサイズ 1024

    各スレッドのスタックサイズ。 デフォルトは、通常の動作に十分な大きさです。 スレッドスタックサイズが小さすぎると、サーバーで処理できる SQL ステートメントの複雑さ、ストアドプロシージャーの再帰の深さなど、メモリーを大量に消費する処理が制限されます。

  • time_zone

    システム変数 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

    システム変数 timestamp
    スコープ セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    数値
    デフォルト値 UNIX_TIMESTAMP()
    最小値 1
    最大値 2147483647

    このクライアントの時間を設定します。 これは、バイナリログを使用して行を復元する場合に元のタイムスタンプを取得するために使用されます。timestamp_value は、Unix エポックタイムスタンプ ('YYYY-MM-DD hh:mm:ss'形式の値ではなく、UNIX_TIMESTAMP() によって返される値など) または DEFAULT である必要があります。

    timestamp を定数値に設定すると、ふたたび変更されるまでその値が保持されます。 timestampDEFAULT に設定すると、その値はアクセスを受けた時点での現在の日付および時間になります。

    timestamp は、値にマイクロ秒部分が含まれているため、BIGINT ではなく DOUBLE です。 最大値は、TIMESTAMP データ型の場合と同じように、'2038-01-19 03:14:07' UTC に対応します。

    SET timestampNOW() によって戻された値に影響を及ぼしますが、SYSDATE() によって戻された値には影響しません。 つまり、バイナリログのタイムスタンプ設定は、SYSDATE() の呼び出しに影響しないことを意味します。 --sysdate-is-now オプションを指定してサーバーを起動すると、SYSDATE()NOW() のシノニムにできます。この場合、SET timestamp は両方の機能に影響します。

  • tls_ciphersuites

    コマンド行形式 --tls-ciphersuites=ciphersuite_list
    導入 8.0.16
    システム変数 tls_ciphersuites
    スコープ グローバル
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 NULL

    TLSv1.3 を使用する暗号化された接続に対してサーバーが許可する暗号スイート。 値は、コロンで区切られたゼロ個以上の暗号スイート名のリストです。

    この変数に指定できる暗号スイートは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 この変数が設定されていない場合、デフォルト値は NULL です。つまり、サーバーは暗号スイートのデフォルトセットを許可します。 変数が空の文字列に設定されている場合、暗号スイートは有効にならず、暗号化された接続を確立できません。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。

  • tls_version

    コマンド行形式 --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=#
    システム変数 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_tablesCreated_tmp_tables の値を比較します。

    セクション8.4.4「MySQL での内部一時テーブルの使用」も参照してください。

  • tmpdir

    コマンド行形式 --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=#
    システム変数 transaction_alloc_block_size
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    Integer
    デフォルト値 8192
    最小値 1024
    最大値 131072
    ブロックサイズ 1024

    メモリーを必要とするトランザクションごとのメモリープールを増やす、バイト単位の増加量。 transaction_prealloc_size の説明を参照してください。

  • transaction_isolation

    コマンド行形式 --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=#
    システム変数 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

    コマンド行形式 --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

    システム変数 unique_checks
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Boolean
    デフォルト値 ON

    1 に設定した場合 (デフォルト)、InnoDB テーブルのセカンダリインデックスの一意性チェックが行われます。 0 に設定した場合、ストレージエンジンでは、重複したキーが入力データに存在しないことが想定されます。 一意性違反がデータにないことが確実にわかっている場合、これを 0 に設定して InnoDB への大きいテーブルのインポートを高速化できます。

    この変数を 0 に設定しても、require ストレージエンジンは重複キーを無視しません。 エンジンは引き続き、重複キーの存在を検査し、検出された場合に重複キーエラーが生成されます。

  • updatable_views_with_limit

    コマンド行形式 --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: 更新を禁止します。

  • use_secondary_engine

    導入 8.0.13
    システム変数 use_secondary_engine
    スコープ セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    列挙
    デフォルト値 ON
    有効な値

    OFF

    ON

    FORCED

    将来使用します。

    セカンダリエンジンを使用してクエリーを実行するかどうか。

    HeatWave で使用します。 MySQL HeatWave User Guide を参照してください。

  • validate_password.xxx

    validate_password コンポーネントは、validate_password.xxx という形式の名前を持つ一連のシステム変数を実装します。 これらの変数は、そのコンポーネントによるパスワードテストに影響します。セクション6.4.3.2「パスワード検証オプションおよび変数」 を参照してください。

  • validate_user_plugins

    コマンド行形式 --validate-user-plugins[={OFF|ON}]
    システム変数 validate_user_plugins
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    Boolean
    デフォルト値 ON

    この変数が有効な場合 (デフォルト)、サーバーは各ユーザーアカウントを検査し、アカウントが使用できなくなる条件が検出された場合に警告を生成します。

    • アカウントが、ロードされていない認証プラグインを必要としている。

    • アカウントには sha256_password または caching_sha2_password 認証プラグインが必要ですが、プラグインで必要な SSL も RSA も有効にせずにサーバーが起動されました。

    validate_user_plugins を有効にすると、サーバー初期化および FLUSH PRIVILEGES の速度が低下します。 追加の検査が必要ない場合、この変数を起動時に無効化するとパフォーマンス低下を防ぐことができます。

  • version

    サーバーのバージョン番号。 この値には、サーバーのビルドまたは構成情報を示す接尾辞が含まれることもあります。-debug は、デバッグサポートを有効にしてサーバーが構築されたことを示します。

  • version_comment

    システム変数 version_comment
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    CMake 構成プログラムには、MySQL の構築時にコメントを指定できる COMPILATION_COMMENT_SERVER オプションがあります。 この変数は、そのコメントの値を格納します。 (MySQL 8.0.14 より前は、version_commentCOMPILATION_COMMENT オプションによって設定されていました。) セクション2.9.7「MySQL ソース構成オプション」を参照してください。

  • version_compile_machine

    システム変数 version_compile_machine
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    サーバーバイナリのタイプ。

  • version_compile_os

    システム変数 version_compile_os
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    MySQL が構築されているオペレーティングシステムのタイプ。

  • version_compile_zlib

    システム変数 version_compile_zlib
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    コンパイルされた zlib ライブラリのバージョン。

  • wait_timeout

    コマンド行形式 --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も参照してください。

  • warning_count

    メッセージを生成した最後のステートメントから得られたエラー、警告、および注意の数。 この変数は読み取り専用です。 セクション13.7.7.42「SHOW WARNINGS ステートメント」を参照してください。

  • windowing_use_high_precision

    コマンド行形式 --windowing-use-high-precision[={OFF|ON}]
    システム変数 windowing_use_high_precision
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Boolean
    デフォルト値 ON

    精度を失わずにウィンドウ操作を計算するかどうか。 セクション8.2.1.21「ウィンドウ機能最適化」を参照してください。


関連キーワード:  変数, サーバー, 適用, グローバル, 設定, スコープ, ヒント, VAR, 形式, セッション