このページは機械翻訳したものです。
MySQL サーバーは、その操作を構成する多くのシステム変数を保持します。 各システム変数にはデフォルト値があります。 システム変数は、コマンド行のオプションを使用するか、オプションファイルでサーバー起動時に設定できます。 これらのほとんどは、実行時に SET ステートメントを使用して動的に変更できます。これにより、サーバーを停止して再起動しなくても、サーバーの操作を変更できます。 式でシステム変数値を使用することもできます。
グローバルシステム変数のランタイム値を設定するには、通常、SYSTEM_VARIABLES_ADMIN 権限 (または非推奨の SUPER 権限) が必要です。 セッションシステムランタイム変数値を設定する場合、通常は特別な権限は必要なく、すべてのユーザーが実行できますが、例外があります。 詳細は、セクション5.1.9.1「システム変数権限」を参照してください
システム変数の名前と値を表示するにはいくつかの方法があります。
-
サーバーが使用する値を、コンパイル済みのデフォルト値と、そのサーバーが読み取るオプションファイルに基づいて表示するには、次のコマンドを使用します:
mysqld --verbose --help -
コンパイルされたデフォルト値のみに基づいてサーバーが使用する値を表示し、オプションファイルの設定を無視するには、次のコマンドを使用します:
mysqld --no-defaults --verbose --help 実行中のサーバーで使用されている現在の値を表示するには、
SHOW VARIABLESステートメントまたはパフォーマンススキーマシステム変数テーブルを使用します。 セクション27.12.14「パフォーマンススキーマシステム変数テーブル」を参照してください。
このセクションでは各システム変数について説明します。 システム変数サマリーテーブルについては、セクション5.1.5「サーバーシステム変数リファレンス」 を参照してください。 システム変数の操作の詳細は、セクション5.1.9「システム変数の使用」 を参照してください。
追加のシステム変数情報については、次のセクションを参照してください。
セクション5.1.9「システム変数の使用」では、システム変数値の設定および表示の構文について説明します。
セクション5.1.9.2「動的システム変数」では、実行時に設定できる変数を一覧表示しています。
システム変数の調整に関する情報は、セクション5.1.1「サーバーの構成」を参照してください。
セクション15.14「InnoDB の起動オプションおよびシステム変数」では、
InnoDBシステム変数を一覧表示しています。セクション23.3.3.9.2「NDB Cluster システム変数」 では、NDB Cluster に固有のシステム変数を一覧表示します。
レプリケーションに固有のサーバーシステム変数については、セクション17.1.6「レプリケーションおよびバイナリロギングのオプションと変数」を参照してください。
次の変数説明の一部では、変数を「有効にする」または「無効にする」ことについて述べています。 これらの変数は SET ステートメントを ON または 1 に設定すると有効になり、あるいは OFF または 0 に設定すると無効になります。 ブール変数は、起動時に値 ON, TRUE, OFF、FALSE (大/小文字の区別なし)、および 1 と 0 に設定できます。 セクション4.2.2.4「プログラムオプション修飾子」を参照してください。
一部のシステム変数はバッファーまたはキャッシュのサイズを制御します。 所定のバッファーについて、サーバーは内部データ構造を割り当てる必要がある場合もあります。 これらの構造は、バッファーに割り当てられた合計メモリーから割り当てられ、必要なスペースの量はプラットフォームに依存することがあります。 つまり、バッファーサイズを制御するシステム変数に値を割り当てたとき、実際に使用可能なスペースの量が、割り当てられた値と異なる場合もあることを意味します。 一部の場合では、この量は割り当てられた値より少ないこともあります。 サーバーが値を上方に調整することもできます。 たとえば、最小値が 1024 の変数に値 0 を割り当てると、サーバーは値を 1024 に設定します。
バッファーサイズ、長さ、およびスタックサイズの値は、別途指定しないかぎりバイト単位で指定されます。
一部のシステム変数はファイル名の値を取ります。 別途指定しないかぎり、値が相対パス名であれば、デフォルトのファイルの場所はデータディレクトリです。 場所を明示的に指定するには、絶対パス名を使用します。 たとえばデータディレクトリが /var/mysql/data だとします。 ファイル値変数を相対パス名として指定すると、/var/mysql/data の下に配置されます。 値が絶対パス名である場合、その場所はパス名によって指定されます。
-
コマンド行形式 --activate-all-roles-on-login[={OFF|ON}]システム変数 activate_all_roles_on_loginスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFユーザーがサーバーにログインしたときに、付与されたすべてのロールの自動アクティブ化を有効にするかどうか:
activate_all_roles_on_loginが有効な場合、サーバーはログイン時に各アカウントに付与されたすべてのロールをアクティブ化します。 これは、SET DEFAULT ROLEで指定されたデフォルトのロールよりも優先されます。activate_all_roles_on_loginが無効になっている場合、サーバーはログイン時にSET DEFAULT ROLEで指定されたデフォルトのロール (存在する場合) をアクティブ化します。
付与されるロールには、ユーザーに明示的に付与されるロールと、
mandatory_rolesシステム変数値で指定されるロールが含まれます。activate_all_roles_on_loginは、ログイン時、および定義者コンテキストで実行されるストアドプログラムおよびビューの実行開始時にのみ適用されます。 セッション内のアクティブなロールを変更するには、SET ROLEを使用します。 ストアドプログラムのアクティブなロールを変更するには、プログラム本体でSET ROLEを実行する必要があります。 -
コマンド行形式 --admin-address=addr導入 8.0.14 システム変数 admin_addressスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 管理ネットワークインタフェースで TCP/IP 接続をリスニングする IP アドレス (セクション5.1.12.1「接続インタフェース」 を参照)。 デフォルトの
admin_address値はありません。 この変数が起動時に指定されない場合、サーバーは管理インタフェースを維持しません。 サーバーには、通常の (非管理) クライアント TCP/IP 接続を構成するためのbind_addressシステム変数もあります。 セクション5.1.12.1「接続インタフェース」を参照してください。admin_addressが指定されている場合、その値は次の要件を満たす必要があります:値は、単一の IPv4 アドレス、IPv6 アドレスまたはホスト名である必要があります。
値にワイルドカードアドレス書式 (
*、0.0.0.0または::) は指定できません。MySQL 8.0.22 の時点では、値にネットワークネームスペース指定子が含まれる場合があります。
IP アドレスは、IPv4 または IPv6 アドレスとして指定できます。 値がホスト名の場合、サーバーは名前を IP アドレスに解決し、そのアドレスにバインドします。 ホスト名が複数の IP アドレスに解決される場合、サーバーは最初の IPv4 アドレス (存在する場合) または最初の IPv6 アドレスを使用します。
サーバーはさまざまなタイプのアドレスを次のように処理します。
アドレスが IPv4 にマップ済みのアドレスの場合、サーバーは IPv4 または IPv6 のいずれかの形式で、そのアドレスの TCP/IP 接続を受け入れます。 たとえば、サーバーが
::ffff:127.0.0.1にバインドされている場合、クライアントは--host=127.0.0.1または--host=::ffff:127.0.0.1のいずれかを使用して接続できます。アドレスが「通常の」 IPv4 または IPv6 アドレスの場合 (
127.0.0.1や::1など)、サーバーはその IPv4 または IPv6 アドレスについてのみ TCP/IP 接続を受け入れます。
アドレスのネットワークネームスペースの指定には、次のルールが適用されます:
ネットワークネームスペースは、IP アドレスまたはホスト名に指定できます。
ワイルドカード IP アドレスにはネットワークネームスペースを指定できません。
指定されたアドレスでは、ネットワーク名前空間はオプションです。 指定する場合は、アドレスの直後に
/接尾辞として指定する必要があります。ns/接尾辞のないアドレスは、ホストシステムのグローバルネームスペースを使用します。 したがって、グローバルネームスペースがデフォルトです。ns/接尾辞の付いたアドレスは、nsnsという名前のネームスペースを使用します。ホストシステムはネットワークネームスペースをサポートしている必要があり、各名前付きネームスペースは事前に設定されている必要があります。 存在しないネームスペースに名前を付けると、エラーが発生します。
ネットワークネームスペースの詳細は、セクション5.1.14「ネットワークネームスペースのサポート」 を参照してください。
アドレスへのバインドが失敗した場合、サーバーはエラーを生成し、起動しません。
admin_addressシステム変数は、サーバーを通常のクライアント接続のアドレスにバインドするbind_addressシステム変数と似ていますが、次の点が異なります:bind_addressでは、複数のアドレスが許可されます。admin_addressでは、単一のアドレスが許可されます。bind_addressでは、ワイルドカードアドレスが許可されます。admin_addressはそうではありません。
-
コマンド行形式 --admin-port=port_num導入 8.0.14 システム変数 admin_portスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 33062最小値 0最大値 65535管理ネットワークインタフェースでの接続に使用する TCP/IP ポート番号 (セクション5.1.12.1「接続インタフェース」 を参照)。 この変数を 0 に設定すると、デフォルト値が使用されます。
admin_addressが指定されていない場合、サーバーは管理ネットワークインタフェースを保持しないため、admin_portを設定しても効果はありません。 -
コマンド行形式 --admin-ssl-ca=file_name導入 8.0.21 システム変数 admin_ssl_caスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLadmin_ssl_caシステム変数はssl_caと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-capath=dir_name導入 8.0.21 システム変数 admin_ssl_capathスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULLadmin_ssl_capathシステム変数はssl_capathと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-cert=file_name導入 8.0.21 システム変数 admin_ssl_certスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLadmin_ssl_certシステム変数はssl_certと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-cipher=name導入 8.0.21 システム変数 admin_ssl_cipherスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 NULLadmin_ssl_cipherシステム変数はssl_cipherと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-crl=file_name導入 8.0.21 システム変数 admin_ssl_crlスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLadmin_ssl_crlシステム変数はssl_crlと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-crlpath=dir_name導入 8.0.21 システム変数 admin_ssl_crlpathスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULLadmin_ssl_crlpathシステム変数はssl_crlpathと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-ssl-key=file_name導入 8.0.21 システム変数 admin_ssl_keyスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLadmin_ssl_keyシステム変数はssl_keyと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-tls-ciphersuites=ciphersuite_list導入 8.0.21 システム変数 admin_tls_ciphersuitesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 NULLadmin_tls_ciphersuitesシステム変数はtls_ciphersuitesと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
コマンド行形式 --admin-tls-version=protocol_list導入 8.0.21 システム変数 admin_tls_versionスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 TLSv1,TLSv1.1,TLSv1.2,TLSv1.3(OpenSSL 1.1.1 以上)TLSv1,TLSv1.1,TLSv1.2(otherwise)admin_tls_versionシステム変数はtls_versionと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 管理インタフェースの暗号化サポートの構成の詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。 -
authentication_windows_log_levelコマンド行形式 --authentication-windows-log-level=#システム変数 authentication_windows_log_levelスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 2最小値 0最大値 4この変数は、
authentication_windowsWindows 認証プラグインが使用可能で、デバッグコードが有効な場合のみ使用できます。 セクション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_windowsWindows 認証プラグインが使用可能な場合のみ使用できます。 セクション6.4.1.6「Windows プラガブル認証」を参照してください。InitSecurityContext()関数を使用して認証するクライアントは、接続するサービスを識別する文字列を提供する必要があります (targetName)。 MySQL は、サーバーが実行するアカウントの主体名 (UPN) を使用します。 UPN はという形式で、使用される場所に登録される必要はありません。 この UPN は、認証ハンドシェイクの最初にサーバーによって送信されます。user_id@computer_nameこの変数は、サーバーが初期チャレンジで UPN を送信するかどうかを制御します。 デフォルトでは、変数は有効になっています。 セキュリティー上の理由から、サーバーアカウント名をクリアテキストとしてクライアントに送信しないように無効にできます。 変数が無効な場合、サーバーは最初のチャレンジで常に
0x00バイトを送信し、クライアントはtargetNameを指定せず、結果として NTLM 認証が使用されます。サーバーが UPN の取得に失敗した場合 (主に Kerberos 認証をサポートしていない環境で発生)、UPN はサーバーによって送信されず、NTLM 認証が使用されます。
-
コマンド行形式 --autocommit[={OFF|ON}]システム変数 autocommitスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ON自動コミットモード。 1 に設定された場合、テーブルへのすべての変更はすぐに有効になります。 0 に設定した場合、
COMMITを使用してトランザクションを受け入れるか、ROLLBACKでトランザクションをキャンセルする必要があります。autocommitが 0 で、これを 1 に変更した場合、MySQL はオープン中のすべてのトランザクションの自動的なCOMMITを実行します。 トランザクションを始める別の方法は、START TRANSACTIONまたはBEGINステートメントを利用する方法です。 セクション13.3.1「START TRANSACTION、COMMIT および ROLLBACK ステートメント」を参照してください。デフォルトでは、クライアント接続は
autocommitを 1 に設定して開始されます。 デフォルト 0 でクライアントを開始させるには、--autocommit=0オプションを使用してサーバーを開始することによって、グローバルなautocommit値を設定します。 オプションファイルを使用して変数を設定するには、次の行を含めます。[mysqld] autocommit=0 -
コマンド行形式 --automatic-sp-privileges[={OFF|ON}]システム変数 automatic_sp_privilegesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこの変数の値が 1 (デフォルト) のとき、ユーザーがルーチンを実行して変更したりドロップしたりできない場合、サーバーは自動的に
EXECUTEおよびALTER ROUTINEの権限をストアドルーチンの作成者に付与します。 (ルーチンをドロップするにはALTER ROUTINE権限が必要です。) ルーチンがドロップされると、サーバーはそれらの権限を作成者から自動的にドロップします。automatic_sp_privilegesが 0 の場合、サーバーはこれらの権限を自動的に追加またはドロップしません。ルーチンの作成者は、ルーチンの
CREATEステートメントを実行するために使用されるアカウントです。 これは、ルーチン定義でDEFINERとして名前が指定されているアカウントと同じでないことがあります。--skip-newを使用して mysqld を起動すると、automatic_sp_privilegesはOFFに設定されます。セクション25.2.2「ストアドルーチンと MySQL 権限」も参照してください。
-
コマンド行形式 --auto-generate-certs[={OFF|ON}]システム変数 auto_generate_certsスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこの変数は、サーバーが SSL キーおよび証明書ファイルをデータディレクトリに自動生成するかどうかを制御します (まだ存在しない場合)。
起動時に、
auto_generate_certsシステム変数が有効で、--ssl以外の SSL オプションが指定されておらず、サーバー側の SSL ファイルがデータディレクトリから欠落している場合、サーバーはサーバー側およびクライアント側の SSL 証明書とキーファイルをデータディレクトリに自動的に生成します。 これらのファイルにより、SSL を使用したセキュアなクライアント接続が可能になります。セクション6.3.1「暗号化接続を使用するための MySQL の構成」 を参照してください。ファイル名や特性など、SSL ファイルの自動生成の詳細は、セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」 を参照してください
sha256_password_auto_generate_rsa_keysおよびcaching_sha2_password_auto_generate_rsa_keysシステム変数は関連していますが、暗号化されていない RSA 接続を使用したセキュアなパスワード交換に必要な RSA キーペアファイルの自動生成を制御します。 -
コマンド行形式 --avoid-temporal-upgrade[={OFF|ON}]非推奨 はい システム変数 avoid_temporal_upgradeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、
ALTER TABLEが、5.6.4 より前の形式 (TIME、DATETIMEおよびTIMESTAMPカラムで小数秒精度をサポートしない) で検出された一時カラムを暗黙的にアップグレードするかどうかを制御します。 このようなカラムをアップグレードするには、テーブルの再構築が必要です。これにより、操作に適用される可能性のある高速変更が使用されなくなります。この変数はデフォルトでは無効になっています。 これを有効にすると、
ALTER TABLEは時間的カラムを再構築しないため、可能な高速変更を利用できます。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
コマンド行形式 --back-log=#システム変数 back_logスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 -1(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 1最大値 65535MySQL で保持できる未処理の接続リクエストの数。 これはメインの MySQL スレッドが非常に短時間で非常に多くの接続リクエストを受け取る場合に効果をあらわします。 次に、メインスレッドが接続を検査し新規スレッドを開始するまで (非常に短いですが) 少し時間がかかります。
back_log値は、MySQL が新規リクエストへの回答を一時的に停止するまでの短い時間に、スタック可能なリクエストの数を示します。 短い時間に大量の接続が予想される場合にかぎり、これを増加する必要があります。つまり、この値は着信 TCP/IP 接続の listen キューのサイズです。 使用しているオペレーティングシステムには、このキューのサイズについて独自の制限があります。 UNIX
listen()システムコールのマニュアルページに、詳細情報があります。 この変数の最大値については OS のドキュメントを確認してください。back_logをオペレーティングシステムの制限を超える設定はできません。デフォルト値は
max_connectionsの値です。これにより、許可されたバックログを最大許容接続数に調整できます。 -
コマンド行形式 --basedir=dir_nameシステム変数 basedirスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 デフォルト値 parent of mysqld installation directoryMySQL インストールベースディレクトリへのパス。
-
コマンド行形式 --big-tables[={OFF|ON}]システム変数 big_tablesスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF有効にすると、サーバーはすべての一時テーブルをメモリーではなくディスクに格納します。 これにより、大規模な一時テーブルを必要とする
SELECT操作のほとんどのThe tableエラーが回避されますが、インメモリーテーブルで十分なクエリーが遅くなります。tbl_nameis full新しい接続のデフォルト値は
OFFです (インメモリー一時テーブルを使用)。 通常、この変数を有効にする必要はありません。 インメモリー internal 一時テーブルがTempTableストレージエンジンによって管理され (デフォルト)、TempTableストレージエンジンが占有できるメモリーの最大量を超えると、TempTableストレージエンジンはディスク上の一時ファイルへのデータの格納を開始します。 インメモリー一時テーブルがMEMORYストレージエンジンによって管理される場合、インメモリーテーブルは必要に応じてディスクベースのテーブルに自動的に変換されます。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --bind-address=addrシステム変数 bind_addressスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 *MySQL サーバーは、1 つ以上のネットワークソケットで TCP/IP 接続をリスニングします。 各ソケットは 1 つのアドレスにバインドされますが、1 つのアドレスを複数のネットワークインタフェースにマップできます。 サーバーが TCP/IP 接続をリスニングする方法を指定するには、サーバーの起動時に
bind_addressシステム変数を設定します。 サーバーには、専用インタフェースでの管理接続を可能にするadmin_addressシステム変数もあります。 セクション5.1.12.1「接続インタフェース」を参照してください。bind_addressが指定されている場合、その値は次の要件を満たす必要があります:MySQL 8.0.13 より前では、
bind_addressは単一のアドレス値を受け入れます。この値には、単一のワイルドカード以外の IP アドレスまたはホスト名、あるいは複数のネットワークインタフェース (*、0.0.0.0または::) でのリスニングを許可するワイルドカードアドレス形式のいずれかを指定できます。MySQL 8.0.13 では、
bind_addressは前述の単一の値またはカンマ区切り値のリストを受け入れます。 変数が複数の値のリストを指定する場合、各値は単一のワイルドカード以外の IP アドレス (IPv4 または IPv6) またはホスト名を指定する必要があります。 ワイルドカードアドレス書式 (*、0.0.0.0または::) は、値リストでは使用できません。MySQL 8.0.22 の時点では、アドレスにネットワーク名前空間指定子を含めることができます。
IP アドレスは、IPv4 または IPv6 アドレスとして指定できます。 ホスト名である値の場合、サーバーは名前を IP アドレスに解決し、そのアドレスにバインドします。 ホスト名が複数の IP アドレスに解決される場合、サーバーは最初の IPv4 アドレス (存在する場合) または最初の IPv6 アドレスを使用します。
サーバーはさまざまなタイプのアドレスを次のように処理します。
アドレスが
*の場合、サーバーはすべてのサーバーホスト IPv4 インタフェースで TCP/IP 接続を受け入れ、サーバーホストが IPv6 をサポートしている場合はすべての IPv6 インタフェースで TCP/IP 接続を受け入れます。 すべてのサーバーインタフェース上の IPv4 および IPv6 の両方の接続を許可するには、このアドレスを使用します。 この値がデフォルトです。 変数で複数の値のリストが指定されている場合、この値は許可されません。アドレスが
0.0.0.0の場合、サーバーはすべてのサーバーホスト IPv4 インタフェース上の TCP/IP 接続を受け入れます。 変数で複数の値のリストが指定されている場合、この値は許可されません。アドレスが
::の場合、サーバーはすべてのサーバーホスト IPv4 および IPv6 インタフェース上の TCP/IP 接続を受け入れます。 変数で複数の値のリストが指定されている場合、この値は許可されません。アドレスが IPv4 にマップ済みのアドレスの場合、サーバーは IPv4 または IPv6 のいずれかの形式で、そのアドレスの TCP/IP 接続を受け入れます。 たとえば、サーバーが
::ffff:127.0.0.1にバインドされている場合、クライアントは--host=127.0.0.1または--host=::ffff:127.0.0.1のいずれかを使用して接続できます。アドレスが「通常の」 IPv4 または IPv6 アドレスの場合 (
127.0.0.1や::1など)、サーバーはその IPv4 または IPv6 アドレスについてのみ TCP/IP 接続を受け入れます。
アドレスのネットワークネームスペースの指定には、次のルールが適用されます:
ネットワークネームスペースは、IP アドレスまたはホスト名に指定できます。
ワイルドカード IP アドレスにはネットワークネームスペースを指定できません。
指定されたアドレスでは、ネットワーク名前空間はオプションです。 指定する場合は、アドレスの直後に
/接尾辞として指定する必要があります。ns/接尾辞のないアドレスは、ホストシステムのグローバルネームスペースを使用します。 したがって、グローバルネームスペースがデフォルトです。ns/接尾辞の付いたアドレスは、nsnsという名前のネームスペースを使用します。ホストシステムはネットワークネームスペースをサポートしている必要があり、各名前付きネームスペースは事前に設定されている必要があります。 存在しないネームスペースに名前を付けると、エラーが発生します。
変数値に複数のアドレスが指定されている場合は、グローバルネームスペース、名前付きネームスペースまたはその組合せにアドレスを含めることができます。
ネットワークネームスペースの詳細は、セクション5.1.14「ネットワークネームスペースのサポート」 を参照してください。
いずれかのアドレスへのバインドが失敗した場合、サーバーはエラーを生成し、起動しません。
例:
-
bind_address=*サーバーは、
*ワイルドカードで指定されたすべての IPv4 または IPv6 アドレスでリスニングします。 -
bind_address=198.51.100.20サーバーは、
198.51.100.20IPv4 アドレスでのみリスニングします。 -
bind_address=198.51.100.20,2001:db8:0:f101::1サーバーは、
198.51.100.20IPv4 アドレスおよび2001:db8:0:f101::1IPv6 アドレスでリスニングします。 -
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.20IPv4 アドレス、blue名前空間の2001:db8:0:f101::1IPv6 アドレス、およびグローバル名前空間の192.0.2.50IPv4 アドレスで待機します。
bind_addressが単一の値 (ワイルドカードまたは非ワイルドカード) に名前を付けると、サーバーは単一のソケットでリスニングし、ワイルドカードアドレスは複数のネットワークインタフェースにバインドできます。bind_addressが複数の値のリストに名前を付けると、サーバーは値ごとに 1 つのソケットをリスニングし、各ソケットは単一のネットワークインタフェースにバインドされます。 ソケットの数は、指定された値の数と線形です。 オペレーティングシステムの connection-acceptance 効率によっては、長い値のリストで TCP/IP 接続を受け入れるためのパフォーマンスペナルティが発生する場合があります。リスニングソケットおよびネットワークネームスペースファイルにはファイル記述子が割り当てられるため、
open_files_limitシステム変数を増やす必要がある場合があります。サーバーを特定のアドレスにバインドする場合は、そのアドレスへの接続に使用できる管理権限を持つアカウントが
mysql.userシステムテーブルに含まれていることを確認してください。 そうしないと、サーバーを停止できません。 たとえば、サーバーを*にバインドしている場合、すべての既存のアカウントを使用して接続できます。 ただし、サーバーを::1にバインドしている場合、そのアドレスの接続のみ受け入れます。 この場合、'root'@'::1'アカウントがmysql.userテーブルに存在することをまず確認して、サーバーに接続してシャットダウンできることをたしかめます。 -
コマンド行形式 --block-encryption-mode=#システム変数 block_encryption_modeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 aes-128-ecbこの変数は、AES などのブロックベースのアルゴリズムのブロック暗号化モードを制御します。 これは
AES_ENCRYPT()およびAES_DECRYPT()の暗号化に影響します。block_encryption_modeはaes-形式の値を取り、ここでkeylen-modekeylenはビット単位の鍵の長さ、modeは暗号化モードです。 値では大文字と小文字は区別されません。 許可されるkeylen値は 128、192、および 256 です。 許可されるmode値は、ECB,CBC,CFB1,CFB8,CFB128およびOFBです。たとえば次のステートメントでは、AES 暗号化機能が 256 ビットの鍵の長さおよび CBC モードを使用します。
SET block_encryption_mode = 'aes-256-cbc';サポートされない鍵の長さや SSL ライブラリがサポートしないモードを含む値に
block_encryption_modeを設定しようとすると、エラーが発生します。 -
コマンド行形式 --bulk-insert-buffer-size=#システム変数 bulk_insert_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 8388608最小値 0最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295MyISAMでは、空でないテーブルにデータを追加する際に、INSERT ... SELECT、INSERT ... VALUES (...), (...), ...およびLOAD DATAのバルク挿入を高速化するために、特別なツリー形式のキャッシュを使用します。 この変数は、スレッドあたりのバイト単位のキャッシュツリーのサイズを制限します。 これを 0 に設定すると、この最適化が無効になります。 デフォルトの値は 8M バイトです。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
caching_sha2_password_digest_roundsコマンド行形式 --caching-sha2-password-digest-rounds=#導入 8.0.24 システム変数 caching_sha2_password_digest_roundsスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 5000最小値 5000最大値 4095000パスワード記憶域用の
caching_sha2_password認証プラグインで使用されるハッシュラウンドの数。ハッシングラウンドの数をデフォルト値より大きくすると、増加量に関連するパフォーマンスペナルティが発生します:
caching_sha2_passwordプラグインを使用するアカウントを作成しても、アカウントが作成されるクライアントセッションには影響しませんが、サーバーはハッシングラウンドを実行して操作を完了する必要があります。アカウントを使用するクライアント接続の場合、サーバーはハッシングラウンドを実行し、結果をキャッシュに保存する必要があります。 その結果、最初のクライアント接続のログイン時間は長くなりますが、後続の接続のログイン時間は長くなりません。 この動作は、サーバーを再起動するたびに発生します。
-
caching_sha2_password_auto_generate_rsa_keysコマンド行形式 --caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]システム変数 caching_sha2_password_auto_generate_rsa_keysスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONサーバーはこの変数を使用して、RSA 秘密/公開鍵ペアファイルがまだ存在しない場合に、それらをデータディレクトリに自動生成するかどうかを決定します。
これらの条件がすべて満たされている場合、サーバーは起動時に RSA 秘密キー/公開キーのペアファイルをデータディレクトリに自動的に生成:
sha256_password_auto_generate_rsa_keysまたはcaching_sha2_password_auto_generate_rsa_keysシステム変数が有効になっており、RSA オプションが指定されていません。RSA ファイルがデータディレクトリにありません。 これらのキーペアファイルを使用すると、sha256_passwordまたはcaching_sha2_passwordプラグインによって認証されたアカウントに対して、暗号化されていない RSA 接続を使用したセキュアなパスワード交換が可能になります。セクション6.4.1.3「SHA-256 プラガブル認証」 および セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。RSA ファイルの自動生成の詳細 (ファイル名や特性など) は、セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」 を参照してください
auto_generate_certsシステム変数は関連していますが、SSL を使用したセキュアな接続に必要な SSL 証明書およびキーファイルの自動生成を制御します。 -
caching_sha2_password_private_key_pathコマンド行形式 --caching-sha2-password-private-key-path=file_nameシステム変数 caching_sha2_password_private_key_pathスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 private_key.pemこの変数は、
caching_sha2_password認証プラグインの RSA 秘密キーファイルのパス名を指定します。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。重要このファイルは秘密鍵を格納しているため、MySQL Server のみがファイルを読み取りできるようにファイルのアクセスモードを制限します。
caching_sha2_passwordの詳細は、セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。 -
caching_sha2_password_public_key_pathコマンド行形式 --caching-sha2-password-public-key-path=file_nameシステム変数 caching_sha2_password_public_key_pathスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 public_key.pemこの変数は、
caching_sha2_password認証プラグインの RSA 公開キーファイルのパス名を指定します。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。クライアントが RSA 公開キーをリクエストする方法など、
caching_sha2_passwordの詳細は、セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。 -
システム変数 character_set_clientスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4クライアントから到達するステートメントの文字セット。 この変数のセッション値は、クライアントがサーバーに接続するときにクライアントによってリクエストされる文字セットを使用して設定されます。 (多くのクライアントは、この文字セットを明示的に指定するための
--default-character-setオプションをサポートします。 セクション10.4「接続文字セットおよび照合順序」も参照してください。) クライアントがリクエストする値が不明または利用できないか、サーバーがクライアントリクエストを無視するように構成されている場合、セッション値を設定するよう変数のグローバル値が使用されます。クライアントがリクエストする文字セットがサーバーで認識されない場合。 たとえば、日本語に対応したクライアントが、
sjisサポートを構成されていないサーバーに接続するときにsjisをリクエストする場合があります。クライアントの MySQL バージョンが MySQL 4.1 よりも古いため、文字セットをリクエストしない場合。
mysqld が
--skip-character-set-client-handshakeオプションを使用して開始された場合、これによってクライアント文字セット構成が無視されます。 これによって MySQL 4.0 の動作が再現されるため、すべてのクライアントをアップグレードしないでサーバーをアップグレードする場合に便利です。
一部の文字セットは、クライアントの文字セットとして使用できません。 これらを
character_set_client値として使用しようとすると、エラーが発生します。 許可されていないクライアント文字セットを参照してください。 -
システム変数 character_set_connectionスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4文字セットイントロデューサなしで指定されたリテラルおよび数値から文字列への変換に使用される文字セット。 イントロデューサについては、セクション10.3.8「文字セットイントロデューサ」 を参照してください。
-
システム変数 character_set_databaseスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4脚注 このオプションは動的ですが、サーバーによってのみ設定する必要があります。 この変数は手動で設定しないでください。 デフォルトデータベースで使用される文字セット。 デフォルトのデータベースが変更されるたびに、サーバーはこの変数を設定します。 デフォルトデータベースが存在しない場合、変数は
character_set_serverと同じ値になります。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
グローバル
character_set_databaseおよびcollation_databaseシステム変数は非推奨です。将来のバージョンの MySQL で削除される予定です。セッション
character_set_databaseおよびcollation_databaseシステム変数への値の割当ては非推奨になり、割当てによって警告が生成されます。 MySQL の将来のバージョンでは、セッション変数にアクセスしてデフォルトデータベースのデータベース文字セットおよび照合を決定できるように、セッション変数が読取り専用になる (およびエラーを生成するために割り当てられる) ことを想定します。 -
コマンド行形式 --character-set-filesystem=nameシステム変数 character_set_filesystemスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 binaryファイルシステムの文字セット。 この変数は、
LOAD DATAステートメント、SELECT ... INTO OUTFILEステートメント、LOAD_FILE()関数など、ファイル名を参照する文字列リテラルを解釈するために使用されます。 このようなファイル名は、ファイルを開くよう試行する前にcharacter_set_clientからcharacter_set_filesystemに変換されます。 デフォルト値はbinaryで、変換が行われないことを意味します。 マルチバイトファイル名が許可されるシステムについては、別の値が適切な場合もあります。 たとえば、システムが UTF-8 を使用してファイル名を表す場合は、character_set_filesystemを'utf8mb4'に設定します。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
システム変数 character_set_resultsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4クエリー結果をクライアントに返すために使用される文字セット。 これには、カラム値、結果メタデータ (カラム名など)、エラーメッセージなどの結果データが含まれます。
-
コマンド行形式 --character-set-server=nameシステム変数 character_set_serverスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4サーバーのデフォルトの文字セット。 セクション10.15「文字セットの構成」を参照してください。 この変数を設定する場合は、文字セットの照合順序を指定するように
collation_serverも設定する必要があります。 -
システム変数 character_set_systemスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8識別子を格納するためにサーバーで使用される文字セット。 この値は常に
utf8です。 -
コマンド行形式 --character-sets-dir=dir_nameシステム変数 character_sets_dirスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 文字セットがインストールされているディレクトリ。 セクション10.15「文字セットの構成」を参照してください。
-
コマンド行形式 --check-proxy-users[={OFF|ON}]システム変数 check_proxy_usersスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF一部の認証プラグインは、プロキシユーザーマッピングを実装しています (PAM や Windows 認証プラグインなど)。 その他の認証プラグインは、デフォルトではプロキシユーザーをサポートしていません。 その中には、付与されたプロキシ権限に従って、MySQL サーバー自体がプロキシユーザーをマップするようにリクエストできるものがあります:
mysql_native_password、sha256_password。check_proxy_usersシステム変数が有効になっている場合、サーバーは、このようなリクエストを行う認証プラグインに対してプロキシユーザーマッピングを実行します。 ただし、サーバープロキシユーザーマッピングのサポートを利用するには、プラグイン固有のシステム変数を有効にする必要がある場合もあります:mysql_native_passwordプラグインの場合は、mysql_native_password_proxy_usersを有効にします。sha256_passwordプラグインの場合は、sha256_password_proxy_usersを有効にします。
ユーザープロキシの詳細は、セクション6.2.18「プロキシユーザー」 を参照してください。
-
システム変数 collation_connectionスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 接続文字セットの照合順序。
collation_connectionは、リテラル文字列の比較に重要です。 カラム値と文字列を比較する場合、collation_connectionは関係ありません。これは、カラムには照合優先度の高い独自の照合があるためです (セクション10.8.4「式での照合の強制性」 を参照)。 -
システム変数 collation_databaseスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4_0900_ai_ci脚注 このオプションは動的ですが、サーバーによってのみ設定する必要があります。 この変数は手動で設定しないでください。 デフォルトデータベースで使用される照合。 デフォルトのデータベースが変更されるたびに、サーバーはこの変数を設定します。 デフォルトデータベースが存在しない場合、変数は
collation_serverと同じ値になります。MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
グローバル
character_set_databaseおよびcollation_databaseシステム変数は非推奨です。将来のバージョンの MySQL で削除される予定です。セッション
character_set_databaseおよびcollation_databaseシステム変数への値の割当ては非推奨になり、割当てによって警告が生成されます。 MySQL の将来のバージョンでは、セッション変数にアクセスしてデフォルトデータベースのデータベース文字セットおよび照合を決定できるように、セッション変数が読取り専用 (およびエラーを生成する割当て) になることを想定しています。 -
コマンド行形式 --collation-server=nameシステム変数 collation_serverスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 utf8mb4_0900_ai_ciサーバーのデフォルトの照合順序。 セクション10.15「文字セットの構成」を参照してください。
-
コマンド行形式 --completion-type=#システム変数 completion_typeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 NO_CHAIN有効な値 NO_CHAINCHAINRELEASE012トランザクション完了タイプ。 この変数は、次の表に示す値を取ることができます。 変数は、名前の値か対応する整数値のいずれかを使用して割り当てることができます。
値 説明 NO_CHAIN(または 0)COMMITおよびROLLBACKは影響されません。 これはデフォルト値です。CHAIN(または 1)COMMITおよびROLLBACKは、それぞれCOMMIT AND CHAINおよびROLLBACK AND CHAINと同等です。 (終了したばかりのトランザクションと同じ分離レベルで新規トランザクションがすぐに開始します。)RELEASE(または 2)COMMITおよびROLLBACKは、それぞれCOMMIT RELEASEおよびROLLBACK RELEASEと同等です。 (サーバーはトランザクションの終了後に切断されます。)completion_typeは、START TRANSACTIONまたはBEGINで開始されてCOMMITまたはROLLBACKで終了するトランザクションに影響します。 これは、セクション13.3.3「暗黙的なコミットを発生させるステートメント」に一覧表示されているステートメントの実行から生じる暗黙的なコミットに適用されません。 また、XA COMMITやXA ROLLBACKに対して、あるいはautocommit=1の場合にも適用されません。 -
コマンド行形式 --concurrent-insert[=value]システム変数 concurrent_insertスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 AUTO有効な値 NEVERAUTOALWAYS012AUTO(デフォルト) の場合、MySQL ではデータファイルの中間に空きブロックがないMyISAMテーブルに対してINSERTおよびSELECTステートメントを同時に実行することが許可されます。この変数は、次の表に示す値を取ることができます。 変数は、名前の値か対応する整数値のいずれかを使用して割り当てることができます。
値 説明 NEVER(または 0)同時挿入を無効にします AUTO(または 1)(デフォルト) 空きブロックがない MyISAMテーブルについての同時挿入を有効にしますALWAYS(または 2)空きブロックがあるテーブルであっても、すべての MyISAMテーブルについての同時挿入を有効にします。 途中に空きブロックのあるテーブルが別のスレッドによって使用されている場合は、新しい行がテーブルの最後に挿入されます。 そうでない場合は、MySQL は正常な書き込みロックを取得し、行を空きブロックに挿入します。--skip-newを使用して mysqld を起動すると、concurrent_insertはNEVERに設定されます。セクション8.11.3「同時挿入」も参照してください。
-
コマンド行形式 --connect-timeout=#システム変数 connect_timeoutスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 10最小値 2最大値 31536000mysqld サーバーが
ハンドシェイクエラーを返すまでに接続パケットを待つ秒数。 デフォルトは 10 秒です。「Lost connection to MySQL server at 'という形式のエラーがクライアントで頻繁に発生する場合、XXX', system error:errno」connect_timeout値を増やすと役立つことがあります。 -
システム変数 core_fileスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFサーバーが予期せず終了した場合にコアファイルを書き込むかどうか。 この変数は
--core-fileオプションによって設定されます。 -
コマンド行形式 --create-admin-listener-thread[={OFF|ON}]導入 8.0.14 システム変数 create_admin_listener_threadスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF管理ネットワークインタフェースでクライアント接続専用のリスニングスレッドを使用するかどうか (セクション5.1.12.1「接続インタフェース」 を参照)。 デフォルトは
OFFです。つまり、メインインタフェース上の通常の接続のマネージャスレッドは、管理インタフェースの接続も処理します。プラットフォームタイプやワークロードなどの要因によっては、この変数の一方の設定により、他方の設定よりもパフォーマンスが向上する場合があります。
admin_addressが指定されていない場合、サーバーは管理ネットワークインタフェースを保持しないため、create_admin_listener_threadを設定しても効果はありません。 -
コマンド行形式 --cte-max-recursion-depth=#システム変数 cte_max_recursion_depthスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1000最小値 0最大値 4294967295共通テーブル式 (CTE) の最大再帰深度。 サーバーは、この変数の値よりも多くのレベルを繰り返す CTE の実行を終了します。 詳細は、共通テーブル式の再帰の制限を参照してください。
-
コマンド行形式 --datadir=dir_nameシステム変数 datadirスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 MySQL サーバーデータディレクトリへのパス。 相対パスは、現在のディレクトリに関して解決されます。 サーバーを自動的に (つまり、事前に現在のディレクトリを認識できないコンテキストで) 起動する場合は、
datadir値を絶対パスとして指定することをお薦めします。 -
コマンド行形式 --debug[=debug_options]システム変数 debugスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 (Unix) d:t:i:o,/tmp/mysqld.traceデフォルト値 (Windows) d:t:i:O,\mysqld.traceこの変数は現在のデバッグ設定を指定します。 これはデバッグサポートを使用して構築されたサーバーについてのみ使用できます。 初期値は、サーバー始動時に指定された
--debugオプションのインスタンスの値から取得されます。 グローバル値とセッション値は、実行時に設定できます。このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
+または-で始まる値を割り当てると、値は現在の値に追加されたり現在の値から削除されたりします。mysql> SET debug = 'T'; mysql> SELECT @@debug; +---------+ | @@debug | +---------+ | T | +---------+ mysql> SET debug = '+P'; mysql> SELECT @@debug; +---------+ | @@debug | +---------+ | P:T | +---------+ mysql> SET debug = '-P'; mysql> SELECT @@debug; +---------+ | @@debug | +---------+ | T | +---------+詳細については、セクション5.9.4「DBUG パッケージ」を参照してください。
-
システム変数 debug_syncスコープ セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 この変数は、Debug Sync 機能へのユーザーインタフェースです。 デバッグ同期を使用するには、MySQL が
-DENABLE_DEBUG_SYNC=1CMake オプションで構成されている必要があります (セクション2.9.7「MySQL ソース構成オプション」 を参照)。 Debug Sync がコンパイルされていない場合、このシステム変数は使用できません。グローバル変数値は読み取り専用で、この機能が有効かどうかを示します。 デフォルトでは、Debug Sync は無効化されており、
debug_syncの値はOFFです。 サーバーが--debug-sync-timeout=で開始した場合 (ここで、NNは 0 より大きいタイムアウト値)、Debug Sync は有効化され、debug_syncの値はON - current signalの後にシグナル名が続いたものになります。 また、Nは個々の同期点についてのデフォルトのタイムアウトになります。セッション値は任意のユーザーが読み取ることができ、グローバル変数と同じ値を持ちます。 セッション値は、同期ポイントを制御するように設定できます。
このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
Debug Sync 機能および同期点の使用方法についての説明は、「MySQL Internals: Test Synchronization」を参照してください。
-
コマンド行形式 --default-authentication-plugin=plugin_nameシステム変数 default_authentication_pluginスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 列挙 デフォルト値 caching_sha2_password有効な値 mysql_native_passwordsha256_passwordcaching_sha2_passwordデフォルトの認証プラグイン 次の値を使用できます:
mysql_native_password: MySQL ネイティブパスワードを使用します。セクション6.4.1.1「ネイティブプラガブル認証」 を参照してください。sha256_password: SHA-256 パスワードを使用します。セクション6.4.1.3「SHA-256 プラガブル認証」 を参照してください。caching_sha2_password: SHA-256 パスワードを使用します。セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。
注記MySQL 8.0 では、
caching_sha2_passwordがmysql_native_passwordではなくデフォルトの認証プラグインです。 サーバー操作に対するこの変更の影響、およびサーバーとクライアントおよびコネクタとの互換性の詳細は、優先認証プラグインとしての caching_sha2_password を参照してください。default_authentication_pluginの値は、サーバー操作の次の側面に影響します:認証プラグインを明示的に指定しない
CREATE USERおよびGRANTステートメントによって作成された新しいアカウントにサーバーが割り当てる認証プラグインを決定します。-
次のステートメントで作成されたアカウントの場合、サーバーはそのアカウントをデフォルトの認証プラグインに関連付け、そのプラグインの必要に応じてハッシュされた特定のパスワードをアカウントに割り当てます:
CREATE USER ... IDENTIFIED BY 'cleartext password';
-
システム変数 default_collation_for_utf8mb4スコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 有効な値 utf8mb4_0900_ai_ciutf8mb4_general_ciレプリケーションによる内部使用用。 このシステム変数は、
utf8mb4文字セットのデフォルトの照合順序に設定されます。 変数の値はソースからレプリカにレプリケートされるため、レプリカは、utf8mb4のデフォルトの照合順序が異なるソースからのデータを正しく処理できます。 この変数は主に、MySQL 5.7 以前のレプリケーションソースサーバーから MySQL 8.0 複製サーバーへのレプリケーション、または MySQL 5.7 プライマリノードと 1 つ以上の MySQL 8.0 セカンダリノードを使用したグループレプリケーションをサポートすることを目的としています。 MySQL 5.7 のutf8mb4のデフォルトの照合はutf8mb4_general_ciですが、MySQL 8.0 のutf8mb4_0900_ai_ciです。 この変数は MySQL 8.0 より前のリリースには存在しないため、レプリカが変数の値を受信しない場合、ソースは以前のリリースのものとみなされ、値は以前のデフォルトの照合utf8mb4_general_ciに設定されます。MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
デフォルトの
utf8mb4照合は、次のステートメントで使用されます:SHOW COLLATIONおよびSHOW CHARACTER SET。COLLATION句のないCHARACTER SET utf8mb4句を持つCREATE TABLEおよびALTER TABLE(テーブルの文字セットまたはカラムの文字セット用)。COLLATION句のないCHARACTER SET utf8mb4句を持つCREATE DATABASEおよびALTER DATABASE。COLLATE句のない_utf8mb4'形式の文字列リテラルを含むステートメント。some text'
-
コマンド行形式 --default-password-lifetime=#システム変数 default_password_lifetimeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 65535この変数は、グローバル自動パスワード有効期限ポリシーを定義します。 デフォルトの
default_password_lifetime値は 0 で、パスワードの自動期限切れは無効になります。default_password_lifetimeの値が正の整数のNの場合は、許可されているパスワードの存続期間を示します。パスワードはN日ごとに変更する必要があります。グローバルパスワード有効期限ポリシーは、
CREATE USERおよびALTER USERステートメントのパスワード有効期限オプションを使用して、個々のアカウントに対して必要に応じてオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --default-storage-engine=nameシステム変数 default_storage_engineスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 InnoDBテーブルのデフォルトのストレージエンジン。 第16章「代替ストレージエンジン」を参照してください。 この変数は、永続テーブルのストレージエンジンのみを設定します。
TEMPORARYテーブルについてストレージエンジンを設定するには、default_tmp_storage_engineシステム変数を設定します。使用可能かつ有効化できるストレージエンジンを表示するには、
SHOW ENGINESステートメントまたはクエリーINFORMATION_SCHEMAENGINESテーブルを参照してください。サーバーの起動時にデフォルトのストレージエンジンを無効にする場合は、永続テーブルと
TEMPORARYテーブルの両方のデフォルトエンジンを別のエンジンに設定する必要があります。そうしないと、サーバーは起動しません。 -
コマンド行形式 --default-table-encryption[={OFF|ON}]導入 8.0.16 システム変数 default_table_encryptionスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFFENCRYPTION句を指定せずにスキーマおよび一般テーブルスペースを作成するときに適用されるデフォルトの暗号化設定を定義します。default_table_encryption変数は、ユーザーが作成したスキーマおよび一般テーブルスペースにのみ適用できます。mysqlシステムテーブルスペースの暗号化は制御されません。default_table_encryptionのランタイム値を設定するには、SYSTEM_VARIABLES_ADMINおよびTABLE_ENCRYPTION_ADMIN権限、または非推奨のSUPER権限が必要です。default_table_encryptionは、SET PERSISTおよびSET PERSIST_ONLY構文をサポートしています。 セクション5.1.9.3「永続化されるシステム変数」を参照してください。詳細は、スキーマおよび一般テーブルスペースの暗号化デフォルトの定義を参照してください。
-
コマンド行形式 --default-tmp-storage-engine=nameシステム変数 default_tmp_storage_engineスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 列挙 デフォルト値 InnoDBTEMPORARYテーブルのデフォルトストレージエンジン (CREATE TEMPORARY TABLEで作成されたもの)。 永続的なテーブルについてのストレージエンジンを設定するには、default_storage_engineシステム変数を設定します。 可能な値については、その変数の説明も参照してください。サーバーの起動時にデフォルトのストレージエンジンを無効にする場合は、永続テーブルと
TEMPORARYテーブルの両方のデフォルトエンジンを別のエンジンに設定する必要があります。そうしないと、サーバーは起動しません。 -
コマンド行形式 --default-week-format=#システム変数 default_week_formatスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 7WEEK()関数について使用するデフォルトモード値。 セクション12.7「日付および時間関数」を参照してください。 -
コマンド行形式 --delay-key-write[={OFF|ON|ALL}]システム変数 delay_key_writeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 ON有効な値 ONOFFALLこの変数は、遅延鍵書き込みの使用方法を指定します。 これは
MyISAMテーブルにのみ適用されます。 鍵の書き込みが遅延すると、書き込み間で鍵バッファーがフラッシュされません。 セクション16.2.1「MyISAM 起動オプション」も参照してください。この変数には、
CREATE TABLEステートメントで使用できるDELAY_KEY_WRITEテーブルオプションの処理に影響する次のいずれかの値を指定できます。オプション 説明 OFFDELAY_KEY_WRITEは無視されます。ONMySQL は CREATE TABLEステートメントに指定されるDELAY_KEY_WRITEオプションを優先します。 これはデフォルト値です。ALL新しくオープンしたすべてのテーブルは、 DELAY_KEY_WRITEオプションを有効にして作成された場合と同様に処理されます。注記この変数を
ALLに設定した場合、MyISAMテーブルの使用中に、このテーブルを別のプログラム内 (別の MySQL Server または myisamchk など) から使用しないでください。 これを行うと、インデックスが破損します。テーブルの
DELAY_KEY_WRITEを有効にした場合、インデックス更新のたびにそのテーブルのキーバッファーがフラッシュされるのではなく、テーブルが閉じたときだけフラッシュされます。 これにより、キーの書込みが大幅に高速化されますが、この機能を使用する場合は、myisam_recover_optionsシステム変数を設定してサーバーを起動することで、すべてのMyISAMテーブルの自動チェックを追加する必要があります (myisam_recover_options='BACKUP,FORCE'など)。 セクション5.1.8「サーバーシステム変数」およびセクション16.2.1「MyISAM 起動オプション」を参照してください。--skip-newを使用して mysqld を起動すると、delay_key_writeはOFFに設定されます。警告--external-lockingで外部ロックを有効にした場合、キーの遅延書き込みを使用するテーブルについてのインデックス破損に対する保護はありません。 -
コマンド行形式 --delayed-insert-limit=#非推奨 はい システム変数 delayed_insert_limitスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 100最小値 1最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295このシステム変数は非推奨 (
DELAYED挿入はサポートされていないため) であり、将来のリリースで削除される予定です。 -
コマンド行形式 --delayed-insert-timeout=#非推奨 はい システム変数 delayed_insert_timeoutスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 300このシステム変数は非推奨 (
DELAYED挿入はサポートされていないため) であり、将来のリリースで削除される予定です。 -
コマンド行形式 --delayed-queue-size=#非推奨 はい システム変数 delayed_queue_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1000最小値 1最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295このシステム変数は非推奨 (
DELAYED挿入はサポートされていないため) であり、将来のリリースで削除される予定です。 -
コマンド行形式 --disabled-storage-engines=engine[,engine]...システム変数 disabled_storage_enginesスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 empty stringこの変数は、テーブルまたはテーブルスペースの作成に使用できないストレージエンジンを示します。 たとえば、新しい
MyISAMまたはFEDERATEDテーブルが作成されないようにするには、サーバーオプションファイルで次の行を使用してサーバーを起動します:[mysqld] disabled_storage_engines="MyISAM,FEDERATED"デフォルトでは、
disabled_storage_enginesは空ですが (エンジンは無効化されていません)、1 つ以上のエンジンのカンマ区切りリストに設定できます (大文字と小文字は区別されません)。 値に指定されたエンジンは、CREATE TABLEまたはCREATE TABLESPACEを使用したテーブルまたはテーブルスペースの作成には使用できません。また、ALTER TABLE ... ENGINEまたはALTER TABLESPACE ... ENGINEとともに使用して、既存のテーブルまたはテーブルスペースの記憶域エンジンを変更することもできません。 これを試行すると、ER_DISABLED_STORAGE_ENGINEエラーが発生します。disabled_storage_enginesでは、CREATE INDEX,TRUNCATE TABLE,ANALYZE TABLE,DROP TABLEやDROP TABLESPACEなどの既存のテーブルに対する他の DDL ステートメントは制限されません。 これにより、無効なエンジンを使用する既存のテーブルまたはテーブルスペースを、ALTER TABLE ... ENGINEなどの方法で許可されたエンジンに移行できるように、スムーズな遷移が可能になります。permitted_enginedefault_storage_engineまたはdefault_tmp_storage_engineシステム変数を無効になっているストレージエンジンに設定できます。 これにより、アプリケーションは誤って動作または失敗する可能性がありますが、無効化されたエンジンを使用するアプリケーションを識別して変更できるように開発環境で有用な手法である可能性があります。これらのオプションのいずれかを使用してサーバーを起動した場合、
disabled_storage_enginesは無効になり、効果はありません:--initialize,--initialize-insecure,--skip-grant-tables。注記disabled_storage_enginesを設定すると、mysql_upgrade で問題が発生する可能性があります。 詳細は、セクション4.4.5「mysql_upgrade — MySQL テーブルのチェックとアップグレード」を参照してください。 -
disconnect_on_expired_passwordコマンド行形式 --disconnect-on-expired-password[={OFF|ON}]システム変数 disconnect_on_expired_passwordスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこの変数は、期限切れのパスワードを持つクライアントをサーバーが処理する方法を制御します。
クライアントが期限切れのパスワードを処理できることを示している場合、
disconnect_on_expired_passwordの値は関係ありません。 サーバーはクライアントが接続することを許可しますが、クライアントをサンドボックスモードに設定します。-
クライアントが期限切れのパスワードを処理できることを示していない場合、サーバーは
disconnect_on_expired_passwordの値に従ってクライアントを処理します:disconnect_on_expired_password: が有効な場合、サーバーはクライアントを切断します。disconnect_on_expired_password: が無効な場合、サーバーはクライアントの接続を許可しますが、クライアントをサンドボックスモードに設定します。
期限切れパスワードに関するクライアントとサーバーの対話の設定の詳細については、セクション6.2.16「期限切れパスワードのサーバー処理」を参照してください。
-
コマンド行形式 --div-precision-increment=#システム変数 div_precision_incrementスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 4最小値 0最大値 30この変数は、
/演算子で実行される除算の結果のスケールを増やす桁数を示します。 デフォルト値は 4 です。 最小値および最大値は、それぞれ 0 および 30 です。 次の例は、デフォルト値を増やした効果を説明したものです。mysql> SELECT 1/7; +--------+ | 1/7 | +--------+ | 0.1429 | +--------+ mysql> SET div_precision_increment = 12; mysql> SELECT 1/7; +----------------+ | 1/7 | +----------------+ | 0.142857142857 | +----------------+ -
dragnet.log_error_filter_rulesコマンド行形式 --dragnet.log-error-filter-rules=valueシステム変数 dragnet.log_error_filter_rulesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.log_filter_dragnetエラーログフィルタコンポーネントの操作を制御するフィルタルール。log_filter_dragnetがインストールされていない場合、dragnet.log_error_filter_rulesは使用できません。log_filter_dragnetがインストールされているが有効になっていない場合、dragnet.log_error_filter_rulesへの変更は無効です。デフォルト値の効果は、
log_error_verbosity=2の設定を使用してlog_sink_internalフィルタによって実行されるフィルタリングに似ています。MySQL 8.0.12 の時点では、
dragnet.Statusステータス変数を参照して、dragnet.log_error_filter_rulesへの最新の割当ての結果を判断できます。MySQL 8.0.12 より前は、実行時に
dragnet.log_error_filter_rulesへの割当てが成功すると、新しい値を確認するノートが生成されます:mysql> SET GLOBAL dragnet.log_error_filter_rules = 'IF prio <> 0 THEN unset prio.'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> SHOW WARNINGS\G *************************** 1. row *************************** Level: Note Code: 4569 Message: filter configuration accepted: SET @@GLOBAL.dragnet.log_error_filter_rules= 'IF prio!=ERROR THEN unset prio.';SHOW WARNINGSによって表示される値は、ルールセットが正常に解析されて内部形式にコンパイルされた後の 「decompiled」 正規表現を示します。 意味上、この正規の形式はdragnet.log_error_filter_rulesに割り当てられた値と同じですが、前述の例に示すように、割り当てられた値と正規の値にはいくつかの違いがある場合があります:<>演算子が!=に変更されます。数値の優先度 0 は、対応する優先度記号
ERRORに変更されます。オプションのスペースが削除されます。
詳細については、セクション5.4.2.4「エラーログフィルタリングのタイプ」,およびセクション5.5.3「エラーログコンポーネント」を参照してください。
-
コマンド行形式 --end-markers-in-json[={OFF|ON}]システム変数 end_markers_in_jsonスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFFオプティマイザ JSON 出力がエンドマーカーを追加するかどうか。 「MySQL 内部: end_markers_in_json システム変数」を参照してください。
-
コマンド行形式 --eq-range-index-dive-limit=#システム変数 eq_range_index_dive_limitスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 200最小値 0最大値 4294967295この変数は、オプティマイザが限定する行数を推定するときに、インデックスダイブの使用からインデックス統計の使用に切り換える場合の等価比較条件内の等価範囲の数を指定します。 これは次に示す同等のいずれかの形式を持つ式の評価に適用され、このときオプティマイザは一意でないインデックスを使用して
col_name値を参照します。col_name IN(val1, ..., valN) col_name = val1 OR ... OR col_name = valNどちらの場合も、式に
N個の等価範囲が含まれています。 オプティマイザはインデックスダイブまたはインデックス統計を使用すると行の推定を実行できます。eq_range_index_dive_limitが 0 より大きい場合、eq_range_index_dive_limit以上の等価範囲があれば、オプティマイザはインデックスダイブの代わりに既存のインデックス統計を使用します。 したがって、N個までの等価範囲に対してインデックスダイブの使用を可能にするには、eq_range_index_dive_limitをN+ 1 に設定します。 インデックス統計の使用を無効にし、Nに関係なく常にインデックスダイブを使用するには、eq_range_index_dive_limitを 0 に設定します。詳細については、複数値比較の等価範囲の最適化を参照してください。
最適な推定を行うためにテーブルインデックス統計を更新するには、
ANALYZE TABLEを使用します。 -
メッセージを生成した最後のステートメントから発生したエラーの数。 この変数は読み取り専用です。 セクション13.7.7.17「SHOW ERRORS ステートメント」を参照してください。
-
コマンド行形式 --event-scheduler[=value]システム変数 event_schedulerスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 ON有効な値 ONOFFDISABLEDこの変数は、イベントスケジューラを有効または無効にし、起動または停止します。 使用可能なステータス値は、
ON、OFFおよびDISABLEDで、デフォルトはOFFです。 イベントスケジューラの有効化OFFは、ステータスをDISABLEDに設定する必要があるイベントスケジューラを無効にすることと同じではありません。 この変数とそのイベントスケジューラ操作への影響の詳細は、セクション25.4.2「イベントスケジューラの構成」 を参照してください -
explicit_defaults_for_timestampコマンド行形式 --explicit-defaults-for-timestamp[={OFF|ON}]非推奨 はい システム変数 explicit_defaults_for_timestampスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこのシステム変数は、サーバーがデフォルト値に対して特定の非標準動作を有効にするかどうか、および
TIMESTAMPカラムでNULL値の処理を有効にするかどうかを決定します。 デフォルトでは、explicit_defaults_for_timestampは有効になっており、非標準動作は無効になっています。explicit_defaults_for_timestampを無効にすると、警告が表示されます。MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
explicit_defaults_for_timestampが無効になっている場合、サーバーは非標準動作を有効にし、次のようにTIMESTAMPカラムを処理します:NULL属性で明示的に宣言されていないTIMESTAMPカラムは、NOT NULL属性で自動的に宣言されます。 このようなカラムにNULLの値を割り当てることができ、カラムを現在のタイムスタンプに設定します。 例外: MySQL 8.0.22 では、TIMESTAMP NOT NULLとして宣言された生成されたカラムにNULLを挿入しようとすると、エラーで拒否されます。NULL属性、明示的なDEFAULTまたはON UPDATE属性で明示的に宣言されていない場合、テーブルの最初のTIMESTAMPカラムはDEFAULT CURRENT_TIMESTAMPおよびON UPDATE CURRENT_TIMESTAMP属性で自動的に宣言されます。-
最初のカラムに続く
TIMESTAMPカラムは、NULL属性または明示的なDEFAULT属性で明示的に宣言されていない場合、DEFAULT '0000-00-00 00:00:00'(「「ゼロ」」タイムスタンプ) として自動的に宣言されます。 そのようなカラムに対して明示的な値を指定しない挿入された行については、カラムに'0000-00-00 00:00:00'が自動的に割り当てられて、警告は発生しません。厳密な SQL モードと
NO_ZERO_DATESQL モードのどちらが有効になっているかによって、デフォルト値の'0000-00-00 00:00:00'が無効になる場合があります。TRADITIONALSQL モードには、厳密モードおよびNO_ZERO_DATEが含まれることに注意してください。 セクション5.1.11「サーバー SQL モード」を参照してください。
前述の非標準の動作は非推奨です。将来の MySQL リリースで削除される予定です。
explicit_defaults_for_timestampが有効になっている場合、サーバーは非標準動作を無効にし、次のようにTIMESTAMPカラムを処理します:TIMESTAMPカラムにNULLの値を割り当てて現在のタイムスタンプに設定することはできません。 現在のタイムスタンプを割り当てるには、カラムをCURRENT_TIMESTAMPまたはNOW()などのシノニムに設定します。NOT NULL属性で明示的に宣言されていないTIMESTAMPカラムは、NULL属性で自動的に宣言され、NULL値を許可します。 このようなカラムにNULLの値を割り当てると、現在のタイムスタンプではなくNULLに設定されます。NOT NULL属性で宣言されたTIMESTAMPカラムでは、NULL値は許可されません。 このようなカラムにNULLを指定する挿入の場合、単一行挿入のエラー、厳密な SQL モードが有効になっている場合、または厳密な SQL モードが無効になっている複数行挿入の場合、'0000-00-00 00:00:00'が挿入されます。 いずれの場合も、カラムにNULLの値が割り当てられず、現在のタイムスタンプに設定されます。明示的な
DEFAULT属性を使用せずにNOT NULL属性で明示的に宣言されたTIMESTAMPカラムは、デフォルト値を持たないものとして扱われます。 そのようなカラムについて明示的な値を指定しない挿入された行の場合、結果は SQL モードによって異なります。 厳密 SQL モードが有効である場合、エラーが発生します。 厳密な SQL モードが有効になっていない場合、カラムは暗黙的なデフォルトの'0000-00-00 00:00:00'で宣言され、警告が発生します。 これは、MySQL がDATETIMEなどのほかの時間型を処理する方法に類似しています。DEFAULT CURRENT_TIMESTAMPまたはON UPDATE CURRENT_TIMESTAMP属性でTIMESTAMPカラムが自動的に宣言されることはありません。 これらの属性は、明示的に指定する必要があります。テーブルの最初の
TIMESTAMPカラムは、最初のカラムに続くTIMESTAMPカラムとは異なる方法で処理されることはありません。
サーバーの起動時に
explicit_defaults_for_timestampが無効になっている場合、次の警告がエラーログに表示されます:[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).警告に示されているように、非推奨の非標準動作を無効にするには、サーバーの起動時に
explicit_defaults_for_timestampシステム変数を有効にします。注記explicit_defaults_for_timestamp自体は非推奨です。これは、将来の MySQL リリースで削除される非推奨のTIMESTAMP動作の制御を許可することのみを目的としているためです。 これらの動作の削除が発生した場合は、explicit_defaults_for_timestampも削除されることを想定してください。追加情報については セクション11.2.5「TIMESTAMP および DATETIME の自動初期化および更新機能」を参照してください。
-
システム変数 external_userスコープ セッション 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 クライアントを認証するために使用されるプラグインによって設定された、認証プロセス中に使用される外部ユーザー名。 ネイティブ (組み込み型) の MySQL 認証や、プラグインで値が設定されない場合、この変数は
NULLです。 セクション6.2.18「プロキシユーザー」を参照してください。 -
コマンド行形式 --flush[={OFF|ON}]システム変数 flushスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFONの場合、各 SQL ステートメントのあとでサーバーはすべての変更をデスクにフラッシュ (同期) します。 通常、MySQL では各 SQL ステートメントの終了後にのみすべての変更内容をディスクに書き込み、ディスクへの同期はオペレーティングシステムが処理します。 セクションB.3.3.3「MySQL が繰り返しクラッシュする場合の対処方法」を参照してください。--flushオプションで mysqld を起動した場合、この変数はONに設定されます。注記flushが有効な場合、flush_timeの値は関係なく、flush_timeを変更してもフラッシュ動作には影響しません。 -
コマンド行形式 --flush-time=#システム変数 flush_timeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0これがゼロ以外の値に設定されると、すべてのテーブルは
flush_time秒ごとに閉じられて、リソースが解放され、フラッシュされていないデータがディスクへ同期されます。 このオプションは、リソースが非常に限定されたシステムでのみ使用することを推奨します。注記flushが有効な場合、flush_timeの値は関係なく、flush_timeを変更してもフラッシュ動作には影響しません。 -
システム変数 foreign_key_checksスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 ON1 (デフォルト) に設定すると、外部キー制約がチェックされます。 0 に設定すると、外部キー制約は無視されますが、いくつかの例外があります。 削除されたテーブルを再作成する場合、テーブル定義がテーブルを参照する外部キー制約に準拠していないと、エラーが返されます。 同様に、外部キー定義の形式が正しくない場合、
ALTER TABLE操作はエラーを返します。 詳細は、セクション13.1.20.5「FOREIGN KEY の制約」を参照してください。この変数を設定すると、
NDBテーブルにはInnoDBテーブルと同じ効果があります。 一般的に、通常の操作中はこの設定を有効にしたままにすることで、参照整合性を強制します。 外部キーチェックを無効にすると、親/子関係に必要な順序とは異なる順序でInnoDBテーブルをリロードする場合に役立ちます。 セクション13.1.20.5「FOREIGN KEY の制約」を参照してください。foreign_key_checksを 0 に設定すると、データ定義ステートメントにも影響します。DROP SCHEMAは、スキーマの外部のテーブルによって参照されている外部キーを持つテーブルをスキーマが含む場合であってもスキーマをドロップし、DROP TABLEは、別のテーブルによって参照されている外部キーを持つテーブルをドロップします。注記foreign_key_checksを 1 に設定すると、既存のテーブルデータのスキャンがトリガーされません。 したがって、foreign_key_checks = 0の間にテーブルに追加された行の一貫性は検証されません。外部キー制約に必要なインデックスの削除は、
foreign_key_checks=0でも許可されていません。 インデックスを削除する前に、外部キー制約を削除する必要があります。 -
コマンド行形式 --ft-boolean-syntax=nameシステム変数 ft_boolean_syntaxスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 + -><()~*:""&|IN BOOLEAN MODEを使用して実行されるブール全文検索によってサポートされる演算子のリスト。 セクション12.10.2「ブール全文検索」を参照してください。デフォルトの変数値は
'+ -><()~*:""&|'です。 値を変更するルールは次のようになります。演算子の機能は、文字列内の位置によって決定されます。
置換する値は 14 文字である必要があります。
各文字は、英数字以外の ASCII 文字である必要があります。
1 番目または 2 番目の文字がスペースである必要があります。
位置 11 および 12 にある句を引用する演算子を除き、重複は許可されません。 これらの 2 つの文字は同じである必要はありませんが、同じであってもよいのはこれら 2 つだけです。
ポジション 10、13 および 14 (デフォルトでは
:、&および|に設定されます) は、将来の拡張用に予約されています。
-
コマンド行形式 --ft-max-word-len=#システム変数 ft_max_word_lenスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer 最小値 10MyISAMFULLTEXTインデックスに含めることができる最大の単語の長さ。注記この変数を変更したあと、
MyISAMテーブルのFULLTEXTインデックスを再構築する必要があります。REPAIR TABLEを使用します。tbl_nameQUICK -
コマンド行形式 --ft-min-word-len=#システム変数 ft_min_word_lenスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 4最小値 1MyISAMFULLTEXTインデックスに含めることができる最小の単語の長さ。注記この変数を変更したあと、
MyISAMテーブルのFULLTEXTインデックスを再構築する必要があります。REPAIR TABLEを使用します。tbl_nameQUICK -
コマンド行形式 --ft-query-expansion-limit=#システム変数 ft_query_expansion_limitスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 20最小値 0最大値 1000WITH QUERY EXPANSIONを使用して実行する全文検索で使用する最上位の一致の数。 -
コマンド行形式 --ft-stopword-file=file_nameシステム変数 ft_stopword_fileスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 MyISAMテーブルの全文検索について、ストップワードのリストの読み取り元ファイル。 サーバーは、別のディレクトリを指定する絶対パス名が指定されないかぎり、データディレクトリ内のファイルを検索します。 ファイル内のすべての単語が使用され、コメントは受け付けされません。 デフォルトでは、ストップワードの組み込みリストが使用されます (storage/myisam/ft_static.cファイルに定義されています)。 この変数を空の文字列 ('') に設定すると、ストップワードフィルタリングが無効になります。 セクション12.10.4「全文ストップワード」も参照してください。注記この変数またはストップワードファイルの内容を変更したあと、
MyISAMテーブルのFULLTEXTインデックスを再構築する必要があります。REPAIR TABLEを使用します。tbl_nameQUICK -
コマンド行形式 --general-log[={OFF|ON}]システム変数 general_logスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF一般クエリーログを有効にするかどうか。 値が 0 (または
OFF) の場合はログを無効にし、1 (またはON) の場合はログを有効にします。 ログ出力先はlog_outputシステム変数によって制御され、この値をNONEにした場合はログが有効になっていてもログエントリは書き込まれません。 -
コマンド行形式 --general-log-file=file_nameシステム変数 general_log_fileスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 host_name.log一般クエリーログファイルの名前。 デフォルト値は
ですが、初期値はhost_name.log--general_log_fileオプションを使用すると変更できます。 -
generated_random_password_lengthコマンド行形式 --generated-random-password-length=#導入 8.0.18 システム変数 generated_random_password_lengthスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 20最小値 5最大値 255CREATE USER、ALTER USERおよびSET PASSWORDステートメントに対して生成されるランダムパスワードで許可される最大文字数。 詳細は、ランダムパスワード生成を参照してください。 -
コマンド行形式 --group-concat-max-len=#システム変数 group_concat_max_lenスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 1024最小値 4最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295GROUP_CONCAT()関数について許可されるバイト単位の最大の結果の長さ。 デフォルトは 1024 です。 -
zlib圧縮ライブラリがサーバーで利用できる場合はYES、そうでない場合はNO。 利用できない場合、COMPRESS()およびUNCOMPRESS()関数は使用できません。 -
mysqld がプラグインの動的ロードをサポートする場合は
YES、そうでない場合はNO。 値がNOの場合、--plugin-loadなどのオプションを使用してサーバー起動時にプラグインをロードしたり、INSTALL PLUGINステートメントを使用して実行時にプラグインをロードしたりすることはできません。 -
サーバーが空間データ型をサポートする場合は
YES、そうでない場合はNO。 -
この変数は、
have_sslのシノニムです。 -
ステートメントプロファイリング機能が存在する場合は
YES、そうでない場合はNO。 存在する場合、この機能を有効または無効にするかがprofilingシステム変数によって制御されます。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。この変数は非推奨であり、将来の MySQL リリースで削除される予定です。
-
クエリーキャッシュは MySQL 8.0.3 で削除されました。
have_query_cacheは非推奨であり、常にNOの値を持ち、将来の MySQL リリースで削除される予定です。 -
RTREEインデックスを利用できる場合はYES、そうでない場合はNO。 (これらはMyISAMテーブル内の空間インデックスで使用されます。) -
システム変数 have_sslスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 有効な値 YES(SSL サポートが使用可能)DISABLED(SSL サポートはサーバーにコンパイルされましたが、有効にするために必要なオプションでサーバーが起動されませんでした)YES(mysqld が SSL 接続をサポートしている場合)、DISABLED(サーバーが SSL サポート付きでコンパイルされているが、適切な connection-encryption オプションで起動されていない場合)。 詳細は、セクション2.9.6「SSL ライブラリサポートの構成」を参照してください。 -
システム変数 have_statement_timeoutスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean ステートメントの実行タイムアウト機能が使用可能かどうか (ステートメント実行時オプティマイザヒント を参照)。 この機能で使用されるバックグラウンドスレッドを初期化できなかった場合、値は
NOになります。 -
シンボリックリンクサポートを有効化している場合は
YES、そうでない場合はNO。 これは、DATA DIRECTORYおよびINDEX DIRECTORYテーブルオプションをサポートするために Unix で必要です。--skip-symbolic-linksオプションを指定してサーバーが開始された場合、この値はDISABLEDです。この変数は Windows では意味がありません。
注記シンボリックリンクのサポートは、それを制御する
--symbolic-linksオプションとともに非推奨になりました。これらは MySQL の将来のバージョンで削除される予定です。 また、このオプションはデフォルトで無効になっています。 関連するhave_symlinkシステム変数も非推奨であり、将来のバージョンの MySQL で削除される予定です。 -
histogram_generation_max_mem_sizeコマンド行形式 --histogram-generation-max-mem-size=#システム変数 histogram_generation_max_mem_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 20000000最小値 1000000最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295ヒストグラム統計の生成に使用可能なメモリーの最大量。 セクション8.9.6「オプティマイザ統計」およびセクション13.7.3.1「ANALYZE TABLE ステートメント」を参照してください。
このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
コマンド行形式 --host-cache-size=#システム変数 host_cache_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 -1(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 0最大値 65536MySQL サーバーは、クライアントホスト名および IP アドレス情報を含むインメモリーホストキャッシュを保持し、ドメインネームシステム (DNS) のルックアップを回避するために使用されます。セクション5.1.12.3「DNS ルックアップとホストキャッシュ」 を参照してください。
host_cache_size変数は、ホストキャッシュのサイズと、キャッシュの内容を公開するパフォーマンススキーマhost_cacheテーブルのサイズを制御します。host_cache_sizeを設定すると、次の効果があります:サイズを 0 に設定すると、ホストキャッシュが無効になります。 キャッシュを無効にすると、サーバーはクライアントが接続するたびに DNS ルックアップを実行します。
実行時にサイズを変更すると、暗黙的なホストキャッシュフラッシュ操作が実行され、ホストキャッシュのクリア、
host_cacheテーブルの切捨ておよびブロックされたホストのブロック解除が行われます。
デフォルト値は 128 に自動サイズ設定され、500 までの
max_connectionsの値には 1 が加算され、max_connections値の 500 を超えるすべての増分には 1 が加算され、制限は 2000 に制限されます。--skip-host-cacheオプションの使用は、host_cache_sizeシステム変数を 0 に設定するのと似ていますが、host_cache_sizeは、サーバーの起動時だけでなく、実行時にホストキャッシュのサイズ変更、有効化、および無効化にも使用できるため、より柔軟です。--skip-host-cacheを使用してサーバーを起動しても、host_cache_sizeの値に対する実行時の変更は妨げられませんが、このような変更は効果がなく、host_cache_sizeが 0 より大きい値に設定されていてもキャッシュは再度有効になりません。 -
システム変数 hostnameスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 サーバーは起動時に、この変数をサーバーホスト名に設定します。 RFC 1034 によると、MySQL 8.0.17 での最大長は 255 文字で、その前は 60 文字です。
-
この変数は
last_insert_id変数のシノニムです。 これはほかのデータベースシステムとの互換性のために存在します。 この値はSELECT @@identityで読み取ることができ、SET identityで設定できます。 -
コマンド行形式 --init-connect=nameシステム変数 init_connectスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 接続する各クライアントに対してサーバーによって実行される文字列。 文字列は 1 つ以上の SQL ステートメントで構成され、セミコロン文字で区切られます。
CONNECTION_ADMIN権限 (または非推奨のSUPER権限) を持つユーザーの場合、init_connectのコンテンツは実行されません。 これを行うのは、init_connectの値が誤っていても、すべてのクライアントの接続を妨げないようにするためです。 たとえば、値に含まれているステートメントが構文エラーを含むため、クライアント接続が失敗することがあります。CONNECTION_ADMINまたはSUPER権限を持つユーザーに対してinit_connectを実行しないと、接続をオープンしてinit_connect値を修正できます。パスワードが期限切れのクライアントユーザーの場合、
init_connectの実行はスキップされます。 これは、このようなユーザーは任意のステートメントを実行できないため、init_connectの実行が失敗し、クライアントが接続できなくなるためです。init_connectの実行をスキップすると、ユーザーは接続してパスワードを変更できます。サーバーは、
init_connectの値のステートメントによって生成されたすべての結果セットを破棄します。 -
information_schema_stats_expiryコマンド行形式 --information-schema-stats-expiry=#システム変数 information_schema_stats_expiryスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 86400最小値 0最大値 31536000一部の
INFORMATION_SCHEMAテーブルには、テーブル統計を提供するカラムが含まれています:STATISTICS.CARDINALITY TABLES.AUTO_INCREMENT TABLES.AVG_ROW_LENGTH TABLES.CHECKSUM TABLES.CHECK_TIME TABLES.CREATE_TIME TABLES.DATA_FREE TABLES.DATA_LENGTH TABLES.INDEX_LENGTH TABLES.MAX_DATA_LENGTH TABLES.TABLE_ROWS TABLES.UPDATE_TIMEこれらのカラムは、動的テーブルメタデータ、つまりテーブルの内容の変更に応じて変更される情報を表します。
デフォルトでは、MySQL は、カラムのクエリー時に
mysql.index_statsおよびmysql.table_statsディクショナリテーブルからこれらのカラムのキャッシュされた値を取得します。これは、ストレージエンジンから統計を直接取得するよりも効率的です。 キャッシュされた統計が使用できないか、期限切れになっている場合、MySQL はストレージエンジンから最新の統計を取得し、mysql.index_statsおよびmysql.table_statsディクショナリテーブルにキャッシュします。 後続のクエリーでは、キャッシュされた統計が期限切れになるまで、キャッシュされた統計が取得されます。information_schema_stats_expiryセッション変数は、キャッシュされた統計が期限切れになるまでの期間を定義します。 デフォルトは 86400 秒 (24 時間) ですが、期間は 1 年まで延長できます。特定のテーブルのキャッシュされた値をいつでも更新するには、
ANALYZE TABLEを使用します。常に最新の統計をストレージエンジンから直接取得し、キャッシュされた値をバイパスするには、
information_schema_stats_expiryを0に設定します。次の場合、統計カラムのクエリーでは、
mysql.index_statsおよびmysql.table_statsディクショナリテーブルの統計は格納または更新されません:キャッシュされた統計が失効していない場合。
information_schema_stats_expiryが 0 に設定されている場合。サーバーが
read_only,super_read_only,transaction_read_onlyまたはinnodb_read_onlyモードで起動されたとき。クエリーでパフォーマンススキーマデータもフェッチされる場合。
information_schema_stats_expiryはセッション変数であり、各クライアントセッションで独自の有効期限値を定義できます。 ストレージエンジンから取得され、あるセッションによってキャッシュされた統計は、ほかのセッションで使用できます。関連情報については、セクション8.2.3「INFORMATION_SCHEMA クエリーの最適化」を参照してください。
-
コマンド行形式 --init-file=file_nameシステム変数 init_fileスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 指定した場合、この変数は、起動プロセス中に読み取られて実行される SQL ステートメントを含むファイルに名前を付けます。 MySQL 8.0.18 より前では、各ステートメントは単一行に記述する必要があり、コメントを含めることはできません。 MySQL 8.0.18 の時点では、ファイル内のステートメントの許容形式は、次の構成をサポートするように拡張されています:
delimiter ;:ステートメントデリミタを;文字に設定します。delimiter $$:ステートメントデリミタを$$文字シーケンスに設定します。現在のデリミタで区切られた、同じ行の複数のステートメント。
Multiple-line statements.
#文字から行の末尾までのコメント。--順序から行の末尾までのコメント。/*順序から次の*/順序への C 形式のコメント (複数行にわたるコメントを含む)。一重引用符 (
') または二重引用符 (") 文字で囲まれた複数行の文字列リテラル。
サーバーが
--initializeまたは--initialize-insecureオプションを使用して起動された場合、それはブートスタップモードで動作し、ファイルで許可されるステートメントを制限する一部の機能は使用できません。 これには、アカウント管理 (CREATE USER、GRANTなど)、レプリケーションおよびグローバルトランザクション識別子に関連するステートメントが含まれます。 セクション17.1.3「グローバルトランザクション識別子を使用したレプリケーション」を参照してください。MySQL 8.0.17 では、サーバーの起動時に作成されたスレッドは、データディクショナリの作成、アップグレード手順の実行、システムテーブルの作成などのタスクに使用されます。 安定した予測可能な環境を確保するために、これらのスレッドは、
sql_mode,character_set_server,collation_server,completion_type,explicit_defaults_for_timestampやdefault_table_encryptionなどの一部のシステム変数のサーバー組込みデフォルトを使用して実行されます。これらのスレッドは、サーバーの起動時に
init_fileで指定されたファイル内のステートメントを実行するためにも使用されるため、このようなステートメントは、これらのシステム変数のサーバーに組み込まれたデフォルト値で実行されます。 -
innodb_xxxInnoDBシステム変数は、セクション15.14「InnoDB の起動オプションおよびシステム変数」にリストされています。 これらの変数は、InnoDBテーブルの記憶域、メモリー使用および I/O パターンの多くの側面を制御し、InnoDBがデフォルトの記憶域エンジンであることが特に重要です。 -
AUTO_INCREMENT値を挿入するときに、後に続くINSERTまたはALTER TABLEステートメントによって使用される値。 これは主にバイナリログと一緒に使用されます。 -
コマンド行形式 --interactive-timeout=#システム変数 interactive_timeoutスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 28800最小値 1サーバーが対話型の接続で、対話型の接続を閉じる前にアクティビティーを待機する秒数。 対話型クライアントは、
mysql_real_connect()でCLIENT_INTERACTIVEオプションを使用するクライアントと定義されます。wait_timeoutも参照してください。 -
internal_tmp_disk_storage_engineコマンド行形式 --internal-tmp-disk-storage-engine=#削除 8.0.16 システム変数 internal_tmp_disk_storage_engineスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 INNODB有効な値 MYISAMINNODB重要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有効な値 TempTableMEMORYインメモリー内部一時テーブルのストレージエンジン (セクション8.4.4「MySQL での内部一時テーブルの使用」 を参照)。 許可される値は、
TempTable(デフォルト) およびMEMORYです。optimizer は、インメモリー内部一時テーブル用に
internal_tmp_mem_storage_engineによって定義されたストレージエンジンを使用します。 -
コマンド行形式 --join-buffer-size=#システム変数 join_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 262144最小値 128最大値 (Windows) 4294967295最大値 (その他, 64 ビットプラットフォーム) 18446744073709547520最大値 (その他, 32 ビットプラットフォーム) 4294967295単純インデックススキャン、範囲インデックススキャン、およびインデックスを使用しないため完全テーブルスキャンを実行する結合について、使用されるバッファーの最小サイズ。 通常の場合、高速な結合を得るための最適な方法は、インデックスを追加することです。 インデックスを追加できない場合、より高速な完全結合を得るために、
join_buffer_sizeの値を大きくします。 2 つのテーブル間の完全結合 1 つに対して 1 つの結合バッファーが割り当てられます。 インデックスが使用されない複数テーブル間の複雑な結合については、複数の結合バッファーが必要になることもあります。ブロックネストループアルゴリズムまたはバッチキーアクセスアルゴリズムを使用しないかぎり、一致する各行を保持するために必要な大きさを超えるバッファを設定することはできず、すべての結合で少なくとも最小サイズが割り当てられるため、この変数をグローバルに大きな値に設定する際は注意が必要です。 グローバル設定を小さく保ち、大きな結合を実行しているセッションでのみセッション設定を大きな値に変更するか、
SET_VARオプティマイザヒントを使用してクエリーごとに設定を変更することをお薦めします (セクション8.9.3「オプティマイザヒント」 を参照)。 メモリーを使用するほとんどのクエリーによって必要なサイズよりもグローバルサイズを大きくすると、メモリー割り当て時間が原因でパフォーマンスが著しく低下することがあります。Block Nested-Loop を使用すると、最初のテーブルのすべての行から必要なすべてのカラムが結合バッファに格納される時点まで、大きな結合バッファが有効になります。 これはクエリーによって異なります。最適なサイズは、最初のテーブルのすべての行を保持するよりも小さくなる場合があります。
バッチ化されたキーアクセスを使用する場合、
join_buffer_sizeの値によって、ストレージエンジンへのリクエストごとにキーのバッチの大きさが定義されます。 バッファが大きいほど、結合操作の右側のテーブルへの順次アクセスが多くなり、パフォーマンスが大幅に向上する可能性があります。デフォルトは 256KB です。
join_buffer_sizeで許可される最大の設定値は 4G バイト −1 です。 64 ビットプラットフォームの場合は大きい値が許可されます (64 ビットの Windows の場合は例外で、大きい値は 4G バイト − 1 に切り捨てられて警告が出ます)。結合バッファリングについての追加情報は、セクション8.2.1.7「Nested Loop 結合アルゴリズム」を参照してください。 バッチキーアクセスについては、セクション8.2.1.12「Block Nested Loop 結合と Batched Key Access 結合」を参照してください。
-
コマンド行形式 --keep-files-on-create[={OFF|ON}]システム変数 keep_files_on_createスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFMyISAMテーブルがDATA DIRECTORYオプションなしで作成される場合、.MYDファイルがデータベースディレクトリ内に作成されます。 デフォルトでは、MyISAMが既存の.MYDファイルを検出した場合、そのファイルを上書きします。INDEX DIRECTORYオプションを指定せずに作成されたテーブルについて、.MYIファイルに同じことが当てはまります。 この動作を抑制するには、keep_files_on_create変数をON(1) に設定します。この場合、MyISAMは既存のファイルを上書きせず、かわりにエラーを返します。 デフォルト値はOFF(0) です。MyISAMテーブルがDATA DIRECTORYまたはINDEX DIRECTORYオプションを使用して作成され、既存の.MYDまたは.MYIファイルが見つかった場合、MyISAM は常にエラーを返します。 指定したディレクトリ内のファイルは上書きされません。 -
コマンド行形式 --key-buffer-size=#システム変数 key_buffer_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 8388608最小値 8最大値 (64 ビットプラットフォーム) OS_PER_PROCESS_LIMIT最大値 (32 ビットプラットフォーム) 4294967295MyISAMテーブルのインデックスブロックはバッファリングされ、すべてのスレッドで共有されます。key_buffer_sizeは、インデックスブロックに使用されるバッファーのサイズです。 キーバッファーはキーキャッシュとしても知られています。32 ビットプラットフォームでは、
key_buffer_sizeに許可される最大の設定値は 4G バイト − 1 です。 64 ビットプラットフォームでは、さらに大きい値が許可されます。 実質的な最大サイズは、使用可能な物理 RAM や、オペレーティングシステムまたはハードウェアプラットフォームによって課されるプロセスごとの RAM 制限によって、もっと小さいことがあります。 この変数の値は、リクエストされるメモリーの量を示します。 サーバーは内部的に、この量までのできるだけ多くのメモリーを割り当てますが、実際の割り当てがもっと少なくなることもあります。値を増やすことで、すべての読み取りおよび複数の書き込みのインデックス処理を改善できます。システムの主な機能が
MyISAMストレージエンジンを使用して MySQL を実行する場合、マシンの合計メモリーの 25% がこの変数の許容可能な値です。 ただし、値を大きくし過ぎると (マシンの合計メモリーの 50% 超)、システムのページングが始まってきわめて低速になることがあります。 これは MySQL がデータ読み取りのためのファイルシステムキャッシュの実行をオペレーティングシステムに依存しているためで、ファイルシステムキャッシュのためにいくらかの空きを残しておく必要があります。 また、MyISAMに追加して使用するほかのストレージエンジンのメモリー要件も考慮します。多くの行の同時書き込みなどスピードを高めるには、
LOCK TABLESを使用します。 セクション8.2.5.1「INSERT ステートメントの最適化」を参照してください。キーバッファーのパフォーマンスを確認するために、
SHOW STATUSステートメントを発行し、Key_read_requests、Key_reads、Key_write_requests、およびKey_writesのステータス変数を調べることができます。 (セクション13.7.7「SHOW ステートメント」を参照してください。)Key_reads/Key_read_requestsの比率は通常は 0.01 より小さくなります。 操作がほとんど更新と削除だけの場合はKey_writes/Key_write_requestsの比率は 1 に近くなりますが、同時に多くの行に影響を与える更新を行う場合や、DELAY_KEY_WRITEテーブルオプションを使用する場合はもっと小さくなることがあります。使用中のキーバッファーの部分は、
key_buffer_sizeに加えて、Key_blocks_unusedステータス変数と、key_cache_block_sizeシステム変数から利用可能なバッファーブロックサイズを使用して決定できます。1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)キーバッファー内の一部のスペースは、管理構造の内部で割り当てられるため、この値は概算です。 これらの構造についてのオーバーヘッドの量に影響する要素には、ブロックサイズおよびポインタサイズがあります。 ブロックサイズが増加すると、オーバーヘッドで失われるキーバッファーのパーセントが減少する傾向にあります。 ブロックが大きくなると、読み取り操作の数が少なくなりますが (読み取りあたりで取得されるキーが増えるため)、検査されないキーの読み取りが逆に増加します (ブロック内の一部のキーがクエリーに関連していない場合)。
MyISAMの複数キーキャッシュを作成できます。 グループとしてではなく個別の各キャッシュに対して 4G バイトのサイズ制限が適用されます。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。 -
コマンド行形式 --key-cache-age-threshold=#システム変数 key_cache_age_thresholdスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 300最小値 100最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295この値は、キーキャッシュのホットサブリストからウォームサブリストへのバッファーの格下げを制御します。 値が低いと格下げが早く行われます。 最小値は 100 です。 デフォルト値は 300 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。
-
コマンド行形式 --key-cache-block-size=#システム変数 key_cache_block_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1024最小値 512最大値 16384キーキャッシュ内のバイト単位のブロックのサイズ。 デフォルト値は 1024 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。
-
コマンド行形式 --key-cache-division-limit=#システム変数 key_cache_division_limitスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 100最小値 1最大値 100キーキャッシュバッファーリストのホットサブリストとウォームサブリストの間の分割点。 値は、ウォームサブリスト用に使用するバッファーリストのパーセントです。 許可される値の範囲は 1 から 100 です。 デフォルト値は 100 です。 セクション8.10.2「MyISAM キーキャッシュ」を参照してください。
-
システム変数 large_files_supportスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean 大きなファイルをサポートするオプションで mysqld をコンパイルしているかどうか。
-
コマンド行形式 --large-pages[={OFF|ON}]システム変数 large_pagesスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ プラットフォーム固有 Linux 型 Boolean デフォルト値 OFF大規模ページサポートが (
--large-pagesオプションで) 有効になっているかどうか。 セクション8.12.3.2「ラージページのサポートの有効化」を参照してください。 -
システム変数 large_page_sizeスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 0大規模ページサポートが有効化されている場合、これはメモリーページのサイズを示します。 ラージメモリーページは Linux でのみサポートされます。他のプラットフォームでは、この変数の値は常に 0 です。 セクション8.12.3.2「ラージページのサポートの有効化」を参照してください。
-
LAST_INSERT_ID()から返される値。 これは、テーブルを更新するステートメント内でLAST_INSERT_ID()を使用するときにバイナリログ内に格納されます。 この変数を設定しても、mysql_insert_id()C API 関数によって返される値は更新されません。 -
コマンド行形式 --lc-messages=nameシステム変数 lc_messagesスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 en_USエラーメッセージに使用するロケール。 デフォルトは
en_USです。 サーバーは引数を言語名に変換し、これをlc_messages_dirの値と組み合わせてエラーメッセージファイルの場所を生成します。 セクション10.12「エラーメッセージ言語の設定」を参照してください。 -
コマンド行形式 --lc-messages-dir=dir_nameシステム変数 lc_messages_dirスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 エラーメッセージが配置されているディレクトリ。 サーバーはこの値を
lc_messagesの値と一緒に使用して、エラーメッセージファイルの場所を生成します。 セクション10.12「エラーメッセージ言語の設定」を参照してください。 -
コマンド行形式 --lc-time-names=valueシステム変数 lc_time_namesスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 この変数は、日および月の名前と略語を表示するために使用する言語を制御するロケールを指定します。 この変数は
DATE_FORMAT()、DAYNAME()、およびMONTHNAME()関数の出力に影響を与えます。 ロケール名は、'ja_JP'や'pt_BR'などの POSIX 規格の値です。 システムのロケール設定に関係なく、デフォルト値は'en_US'です。 詳細については、セクション10.16「MySQL Server のロケールサポート」を参照してください。 -
システム変数 licenseスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 GPLサーバーが持つライセンスのタイプ。
-
コマンド行形式 --local-infile[={OFF|ON}]システム変数 local_infileスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、
LOAD DATAステートメントのサーバー側LOCAL機能を制御します。local_infileの設定に応じて、サーバーはクライアント側でLOCALが有効になっているクライアントによるローカルデータロードを拒否または許可します。サーバーが
LOAD DATA LOCALステートメントを明示的に拒否または許可するようにするには (構築時または実行時にクライアントプログラムおよびライブラリがどのように構成されているかに関係なく)、それぞれlocal_infileを無効または有効にして mysqld を起動します。local_infileは実行時に設定することもできます。 詳細は、セクション6.1.6「LOAD DATA LOCAL のセキュリティー上の考慮事項」を参照してください。 -
コマンド行形式 --lock-wait-timeout=#システム変数 lock_wait_timeoutスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 31536000最小値 1最大値 31536000この変数は、メタデータロックを取得するための試行のタイムアウトを秒単位で指定します。 許可される値の範囲は 1 から 31536000 (1 年) です。 デフォルトは 31536000 です。
このタイムアウトは、メタデータロックを使用するすべてのステートメントに適用されます。 これらには、テーブル、ビュー、ストアドプロシージャー、ストアドファンクションの DML 操作および DDL 操作のほかに、
LOCK TABLES、FLUSH TABLES WITH READ LOCK、およびHANDLERステートメントが含まれます。このタイムアウトは、
GRANTまたはREVOKEステートメントやテーブルロギングステートメントによって変更される付与テーブルなど、mysqlデータベース内のシステムテーブルへの暗黙的なアクセスには適用されません。 タイムアウトは、SELECTやUPDATEなどによって直接アクセスされるシステムテーブルに適用されます。タイムアウト値は、メタデータロック試行ごとに別々に適用されます。 ある特定のステートメントが複数のロックを必要とする場合もあるため、タイムアウトエラーを報告する前に、ステートメントが
lock_wait_timeout値よりも長くブロックする可能性もあります。 ロックタイムアウトが発生すると、ER_LOCK_WAIT_TIMEOUTが報告されます。lock_wait_timeoutでは、LOCK INSTANCE FOR BACKUPステートメントがロックを放棄するまで待機する時間も定義されます。 -
システム変数 locked_in_memoryスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ mysqld が
--memlockによってメモリー内でロックされたかどうか。 -
コマンド行形式 --log-error[=file_name]システム変数 log_errorスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルトのエラーログの保存先。 宛先がコンソールの場合、値は
stderrです。 それ以外の場合、宛先はファイルで、log_error値はファイル名です。 セクション5.4.2「エラーログ」 を参照してください。 -
コマンド行形式 --log-error-services=valueシステム変数 log_error_servicesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 log_filter_internal; log_sink_internalエラーロギングを有効にするコンポーネント。 変数には、0、1 または多数の要素を含むリストを含めることができます。 後者の場合、要素はセミコロンまたは (MySQL 8.0.12 の時点で) カンマで区切り、オプションでスペースを続けることができます。 指定された設定にセミコロンとカンマの両方のセパレータを使用することはできません。 サーバーはリストされた順序でコンポーネントを実行するため、コンポーネントの順序は重要です。
log_error_services値に指定されたロード可能な (組込みではない) コンポーネントは、最初にINSTALL COMPONENTとともにインストールする必要があります。 詳細は、セクション5.4.2.1「エラーログ構成」を参照してください。 -
コマンド行形式 --log-error-suppression-list=value導入 8.0.13 システム変数 log_error_suppression_listスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 empty stringlog_error_suppression_listシステム変数は、エラーログを対象としたイベントに適用され、WARNINGまたはINFORMATIONの優先度で発生した場合に抑制するイベントを指定します。 たとえば、特定のタイプの警告が頻繁に発生するが関心がないためにエラーログで望ましくない「「ノイズ」」とみなされる場合は、抑止できます。 この変数は、デフォルトで有効になっているlog_filter_internalエラーログフィルタコンポーネントによって実行されるフィルタリングに影響します (セクション5.5.3「エラーログコンポーネント」 を参照)。log_filter_internalが無効になっている場合、log_error_suppression_listは影響を与えません。log_error_suppression_list値には、抑制しない場合は空の文字列、抑制するエラーコードを示すカンマ区切り値のリストを指定できます。 エラーコードはシンボリックまたは数値形式で指定できます。 数値コードは、MY-接頭辞の有無にかかわらず指定できます。 数値部分の先頭のゼロは重要ではありません。 許可されているコード形式の例:ER_SERVER_SHUTDOWN_COMPLETE MY-000031 000031 MY-31 31読みやすく移植性を高めるために、数値よりもシンボリック値をお薦めします。 許可されるエラー記号およびエラー番号の詳細は、MySQL 8.0 Error Message Reference を参照してください。
log_error_suppression_listの効果は、log_error_verbosityの効果と結合されます。 追加情報については セクション5.4.2.5「優先度ベースのエラーログのフィルタリング (log_filter_internal)」を参照してください。 -
コマンド行形式 --log-error-verbosity=#システム変数 log_error_verbosityスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 2最小値 1最大値 3log_error_verbosityシステム変数は、エラーログを対象としたイベントを処理するための冗長性を指定します。 この変数は、デフォルトで有効になっているlog_filter_internalエラーログフィルタコンポーネントによって実行されるフィルタリングに影響します (セクション5.5.3「エラーログコンポーネント」 を参照)。log_filter_internalが無効になっている場合、log_error_verbosityは影響を与えません。エラーログを対象としたイベントの優先度は、
ERROR、WARNINGまたはINFORMATIONです。log_error_verbosityは、次のテーブルに示すように、ログに書き込まれるメッセージに対して許可する優先度に基づいて冗長性を制御します。log_error_verbosity 値 許可されたメッセージの優先度 1 ERROR2 ERROR,WARNING3 ERROR,WARNING,INFORMATIONSYSTEMの優先度もあります。log_error_verbosityの値に関係なく、エラー以外の状況に関するシステムメッセージがエラーログに出力されます。 これらのメッセージには、起動メッセージと停止メッセージ、および設定に対する重要な変更が含まれます。log_error_verbosityの効果は、log_error_suppression_listの効果と結合されます。 追加情報については セクション5.4.2.5「優先度ベースのエラーログのフィルタリング (log_filter_internal)」を参照してください。 -
コマンド行形式 --log-output=nameシステム変数 log_outputスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Set デフォルト値 FILE有効な値 TABLEFILENONE一般クエリーログおよびスロークエリーログ出力の宛先。 値は、
TABLE、FILEおよびNONEから選択されたカンマ区切りの単語のリストです。TABLEは、mysqlシステムスキーマ内のgeneral_logおよびslow_logテーブルへのロギングを選択します。FILEは、ログファイルへのロギングを選択します。NONEはロギングを無効にします。 値にNONEが存在する場合は、存在する他の単語よりも優先されます。TABLEとFILEの両方を指定して、両方のログ出力先を選択できます。この変数は、ログ出力先を選択しますが、ログ出力は有効にしません。 これを行うには、
general_logおよびslow_query_logシステム変数を有効にします。FILEロギングの場合、general_log_fileおよびslow_query_log_fileシステム変数によってログファイルの場所が決まります。 詳細については、セクション5.4.1「一般クエリーログおよびスロークエリーログの出力先の選択」を参照してください。 -
コマンド行形式 --log-queries-not-using-indexes[={OFF|ON}]システム変数 log_queries_not_using_indexesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFスロークエリーログを有効にしてこの変数を有効にすると、すべての行を取得すると予想されるクエリーがログに記録されます。 セクション5.4.5「スロークエリーログ」を参照してください。 このオプションは、インデックスが使用されないことを必ずしも意味するわけではありません。 たとえば、フルインデックススキャンを使用するクエリーはインデックスを使用しますが、インデックスは行数を制限しないため、クエリーはログに記録されます。
-
コマンド行形式 --log-raw[={OFF|ON}]システム変数 (≥ 8.0.19) log_rawスコープ (≥ 8.0.19) グローバル 動的 (≥ 8.0.19) はい SET_VARヒントの適用 (≥ 8.0.19)いいえ 型 Boolean デフォルト値 OFFlog_rawシステム変数は、最初は--log-rawオプションの値に設定されます。 詳細は、そのオプションの説明を参照してください。 システム変数を実行時に設定して、パスワードマスキング動作を変更することもできます。 -
コマンド行形式 --log-slow-admin-statements[={OFF|ON}]システム変数 log_slow_admin_statementsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFスロークエリーログに書き込まれるステートメントにスロー管理ステートメントを含めます。 管理ステートメントには、
ALTER TABLE、ANALYZE TABLE、CHECK TABLE、CREATE INDEX、DROP INDEX、OPTIMIZE TABLE、およびREPAIR TABLEが含まれます。 -
コマンド行形式 --log-slow-extra[={OFF|ON}]導入 8.0.14 システム変数 log_slow_extraスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFスロークエリーログが有効で、出力先に
FILEが含まれている場合、サーバーはスローステートメントに関する情報を提供する追加のフィールドをログファイル行に書き込みます。 セクション5.4.5「スロークエリーログ」を参照してください。TABLE出力は影響を受けません。 -
コマンド行形式 --log-syslog[={OFF|ON}]非推奨 はい (removed in 8.0.13) システム変数 log_syslogスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ON(システムログへのエラーロギングが有効な場合)MySQL 8.0 より前では、この変数はシステムログ (Windows の場合はイベントログ、Unix および Unix に似たシステムの場合は
syslog) にエラーロギングを実行するかどうかを制御していました。MySQL 8.0 では、
log_sink_syseventlogログコンポーネントによってシステムログへのエラーロギングが実装されるため (セクション5.4.2.8「システムログへのエラーロギング」 を参照)、log_error_servicesシステム変数にこのタイプのロギングを追加することで有効にできます。log_syslogが削除されます。 (MySQL 8.0.13 より前は、log_syslogは存在していましたが、非推奨であり、効果はありません。) -
コマンド行形式 --log-syslog-facility=value削除 8.0.13 システム変数 log_syslog_facilityスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 daemonこの変数は MySQL 8.0.13 で削除され、
syseventlog.facilityに置き換えられました。 -
コマンド行形式 --log-syslog-include-pid[={OFF|ON}]削除 8.0.13 システム変数 log_syslog_include_pidスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこの変数は MySQL 8.0.13 で削除され、
syseventlog.include_pidに置き換えられました。 -
コマンド行形式 --log-syslog-tag=tag削除 8.0.13 システム変数 log_syslog_tagスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 empty stringこの変数は MySQL 8.0.13 で削除され、
syseventlog.tagに置き換えられました。 -
コマンド行形式 --log-timestamps=#システム変数 log_timestampsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 UTC有効な値 UTCSYSTEMこの変数は、エラーログに書き込まれるメッセージのタイムスタンプ、およびファイルに書き込まれる一般的なクエリーログメッセージとスロークエリーログメッセージのタイムゾーンを制御します。 一般クエリーログおよびテーブル (
mysql.general_log、mysql.slow_log) に書き込まれるスロークエリーログメッセージのタイムゾーンには影響しません。 これらのテーブルから取得された行は、CONVERT_TZ()を使用するか、セッションのtime_zoneシステム変数を設定することで、ローカルシステムのタイムゾーンから任意のタイムゾーンに変換できます。許可される
log_timestamps値は、UTC(デフォルト) およびSYSTEM(ローカルシステムのタイムゾーン) です。タイムスタンプは ISO 8601 / RFC 3339 形式を使用して書き込まれます:
に Zulu 時間 (UTC) またはYYYY-MM-DDThh:mm:ss.uuuuuu±hh:mm(UTC からのオフセット) を示すZの末尾の値を加えたもの。 -
log_throttle_queries_not_using_indexesコマンド行形式 --log-throttle-queries-not-using-indexes=#システム変数 log_throttle_queries_not_using_indexesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0log_queries_not_using_indexesが有効な場合、log_throttle_queries_not_using_indexes変数は、スロークエリーログに書き込み可能な分あたりのクエリー数を制限します。 値 0 (デフォルト) は「制限なし」を意味します。 詳細は、セクション5.4.5「スロークエリーログ」を参照してください。 -
コマンド行形式 --long-query-time=#システム変数 long_query_timeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 数値 デフォルト値 10最小値 0クエリーの時間がこの秒数よりかかると、サーバーは
Slow_queriesステータス変数を増やします。 スロークエリーログが有効な場合、クエリーはスロークエリーログファイルに記録されます。 この値は CPU 時間でなくリアルタイムで測定されるため、負荷の軽いシステムでしきい値を下回るクエリーが、負荷の重いシステムではしきい値を超える場合もあります。long_query_timeの最小値およびデフォルト値は、それぞれ 0 および 10 です。 値はマイクロ秒の精度まで指定できます。 セクション5.4.5「スロークエリーログ」を参照してください。この変数の値を小さくすると、長時間実行とみなされるステートメントが増えるため、スロークエリーログに必要な領域が増えます。 非常に小さい値 (1 秒未満) の場合、ログは非常に大きくなることがあります。 長時間実行とみなされるステートメントの数を増やすと、特にグループレプリケーションが有効になっている場合に、MySQL Enterprise Monitor の「「長時間実行プロセスの数が多すぎます」」アラートに対して誤検出が発生する可能性もあります。 これらの理由から、非常に小さい値はテスト環境でのみ使用するか、本番環境では短期間のみ使用する必要があります。
-
コマンド行形式 --low-priority-updates[={OFF|ON}]システム変数 low_priority_updatesスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF1に設定された場合、すべてのINSERT、UPDATE、DELETE、およびLOCK TABLE WRITEステートメントは、影響を受けるテーブルでの保留中のSELECTまたはLOCK TABLE READがなくなるまで待機します。{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ...を使用して同じ効果を得て、クエリーの優先度を下げることができます。 この変数は、テーブルレベルのロック (MyISAM、MEMORY、MERGEなど) のみを使用するストレージエンジンにのみ影響します。 セクション8.11.2「テーブルロックの問題」を参照してください。 -
システム変数 lower_case_file_systemスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean この変数は、データディレクトリが配置されているファイルシステムでのファイル名の大文字小文字の区別を示します。
OFFでは、ファイル名は大/小文字が区別され、ONでは大/小文字が区別されません。 この変数は、ファイルシステム属性を反映するため読み取り専用で、変数を設定してもファイルシステムに影響しません。 -
コマンド行形式 --lower-case-table-names[=#]システム変数 lower_case_table_namesスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 20 に設定すると、テーブル名は指定したとおりに格納され、比較では大/小文字が区別されます。 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_nameMyISAMでは、異なる大文字と小文字を使用してテーブル名にアクセスすると、インデックスが破損する可能性があります。大/小文字を区別しないファイルシステムで
--lower_case_table_names=0を使用してサーバーを起動しようとすると、エラーメッセージが出力され、サーバーが終了します。InnoDBテーブルを使用する場合、名前を強制的に小文字に変換するために、すべてのプラットフォームでこの値を 1 に設定します。この変数の設定は、大文字と小文字の区別に関してレプリケーションフィルタリングオプションの動作に影響します。 詳細は、セクション17.2.5「サーバーがレプリケーションフィルタリングルールをどのように評価するか」を参照してください。
サーバーの初期化時に使用された設定とは異なる
lower_case_table_names設定でサーバーを起動することは禁止されています。 様々なデータディクショナリテーブルのフィールドで使用される照合は、サーバーの初期化時に定義された設定によって決定され、異なる設定でサーバーを再起動すると、識別子の順序付けおよび比較方法に矛盾が生じるため、制限が必要です。したがって、サーバーを初期化する前に、
lower_case_table_namesを目的の設定に構成する必要があります。 ほとんどの場合、MySQL サーバーを初めて起動する前に、MySQL オプションファイルでlower_case_table_namesを構成する必要があります。 ただし、Debian および Ubuntu での APT インストールの場合、サーバーは初期化され、事前にオプションファイルで設定を構成する機会はありません。 そのため、lower_case_table_namesを有効にするには、APT を使用して MySQL をインストールする前にdebconf-set-selectionユーティリティを使用する必要があります。 これを行うには、APT を使用して MySQL をインストールする前に、次のコマンドを実行します:shell> sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled注記debconf-set-selectionsを使用してlower_case_table_namesを有効にする機能が MySQL 8.0.17 に追加されました。lower_case_table_namesを有効にすると、値は 1 に設定されます。 -
コマンド行形式 --mandatory-roles=valueシステム変数 mandatory_rolesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 empty stringサーバーが必須として扱う必要があるロール。 実際には、これらのロールはすべてのユーザーに自動的に付与されますが、
mandatory_rolesを設定しても実際にはユーザーアカウントは変更されず、付与されたロールはmysql.role_edgesシステムテーブルに表示されません。変数値は、ロール名のカンマ区切りリストです。 例:
SET PERSIST mandatory_roles = '`role1`@`%`,`role2`,role3,role4@localhost';mandatory_rolesのランタイム値を設定するには、グローバルシステム変数のランタイム値を設定するために通常必要なSYSTEM_VARIABLES_ADMIN権限 (または非推奨のSUPER権限) に加えて、ROLE_ADMIN権限が必要です。ロール名は、
形式のユーザー部分とホスト部分で構成されます。 ホスト部分を省略すると、デフォルトでuser_name@host_name%に設定されます。 追加情報については セクション6.2.5「ロール名の指定」を参照してください。mandatory_roles値は文字列であるため、引用符で囲まれている場合は、引用符で囲まれた文字列内での引用に許可された方法でユーザー名とホスト名を記述する必要があります。mandatory_rolesの値で指定されたロールは、REVOKEで取り消すことも、DROP ROLEまたはDROP USERで削除することもできません。セッションがデフォルトでシステムセッションにならないようにするには、
SYSTEM_USER権限を持つロールをmandatory_rolesシステム変数の値にリストできません:SYSTEM_USER権限を持つロールが起動時にmandatory_rolesに割り当てられた場合、サーバーはエラーログにメッセージを書き込み、終了します。SYSTEM_USER権限を持つロールが実行時にmandatory_rolesに割り当てられた場合、エラーが発生し、mandatory_roles値は変更されません。
明示的に付与されたロールと同様に、必須ロールはアクティブ化されるまで有効になりません (ロールのアクティブ化 を参照)。 ログイン時に、
activate_all_roles_on_loginシステム変数が有効になっている場合は付与されているすべてのロールに対してロールのアクティブ化が行われ、それ以外の場合はデフォルトロールとして設定されているロールに対してロールのアクティブ化が行われます。 実行時に、SET ROLEによってロールがアクティブ化されます。mandatory_rolesに割り当てられたときに存在しないが、後で作成されるロールでは、特別な処理を必須とみなす必要がある場合があります。 詳細は、必須ロールの定義を参照してください。SHOW GRANTSでは、セクション13.7.7.21「SHOW GRANTS ステートメント」 で説明されているルールに従って必須ロールが表示されます。 -
コマンド行形式 --max-allowed-packet=#システム変数 max_allowed_packetスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 67108864最小値 1024最大値 10737418241 つのパケット、生成された文字列または中間文字列、または
mysql_stmt_send_long_data()C API 関数によって送信されたすべてのパラメータの最大サイズ。 デフォルトは 64M バイトです。パケットメッセージバッファーは
net_buffer_lengthバイトに初期化されますが、必要に応じてmax_allowed_packetバイトまで大きくできます。 この値はデフォルトでは小さいため、大きい (正しくない可能性がある) パケットをキャッチできません。大きい
BLOBカラムまたは長い文字列を使用している場合、この値を大きくする必要があります。 使用する最大のBLOBと同じ大きさにしてください。max_allowed_packetのプロトコル制限は 1G バイトです。 値は 1024 の倍数にします。倍数でない場合、もっとも近い倍数に切り下げられます。max_allowed_packet変数の値を変更することによってメッセージバッファーサイズを変更するとき、クライアントプログラムでそれが可能である場合は、クライアント側のバッファーサイズも変更します。 クライアントライブラリに組み込まれるデフォルトのmax_allowed_packet値は 1G バイトですが、個々のクライアントプログラムはこれをオーバーライドできます。 たとえば、mysql および mysqldump のデフォルトは、それぞれ 16M バイトおよび 24M バイトです。 また、コマンド行またはオプションファイル内でmax_allowed_packetを設定することによって、クライアント側の値を変更することもできます。この変数のセッションの値は、読み取り専用です。 クライアントは、セッション値と同じバイト数まで受信できます。 ただし、サーバーは現在のグローバル
max_allowed_packet値を超えるバイト数をクライアントに送信しません。 (クライアントの接続後にグローバル値が変更された場合、グローバル値はセッション値より小さくなる可能性があります。) -
コマンド行形式 --max-connect-errors=#システム変数 max_connect_errorsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 100最小値 1最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295正常に接続されずにホストからの
max_connect_errorsの連続した接続リクエストが中断されると、サーバーはそのホストをそれ以降の接続からブロックします。 前回の接続が中断された後、max_connect_errorsの試行回数より少ない時間内にホストからの接続が正常に確立された場合、ホストのエラー数はゼロにクリアされます。 ブロックされたホストのブロックを解除するには、ホストキャッシュをフラッシュします。ホストキャッシュのフラッシュ を参照してください。 -
コマンド行形式 --max-connections=#システム変数 max_connectionsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 151最小値 1最大値 100000許可される最大のクライアントの同時接続数。 詳細は、セクション5.1.12.1「接続インタフェース」を参照してください。
-
コマンド行形式 --max-delayed-threads=#非推奨 はい システム変数 max_delayed_threadsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 20最小値 0最大値 16384このシステム変数は非推奨です (
DELAYEDの挿入はサポートされていないため)。将来のリリースで削除される予定です。 -
コマンド行形式 --max-digest-length=#システム変数 max_digest_lengthスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 1024最小値 0最大値 1048576正規化されたステートメントダイジェストの計算用にセッションごとに予約されているメモリーの最大バイト数。 ダイジェスト計算中にその量の領域が使用されると、切捨てが発生: 解析されたステートメントからのそれ以上のトークンは収集されず、ダイジェスト値になりません。 解析されたトークンのバイト数が同じ正規化されたステートメントダイジェストを生成し、比較された場合、またはダイジェスト統計のために集計された場合にのみ、ステートメントが同じであるとみなされます。
max_digest_length値を小さくするとメモリー使用量は減少しますが、末尾のみが異なる場合は、より多くのステートメントのダイジェスト値が区別できなくなります。 この値を大きくすると、より長いステートメントを区別できますが、特に多数の同時セッションを含むワークロード (サーバーはセッションごとにmax_digest_lengthバイトを割り当てます) では、メモリー使用量が増加します。パーサーは、このシステム変数を、計算する正規化されたステートメントダイジェストの最大長の制限として使用します。 パフォーマンススキーマは、ステートメントダイジェストを追跡する場合、格納するダイジェストの最大長の制限として
performance_schema_max_digest_length. システム変数を使用してダイジェスト値のコピーを作成します。 したがって、performance_schema_max_digest_lengthがmax_digest_lengthより小さい場合、パフォーマンススキーマに格納されているダイジェスト値は、元のダイジェスト値と比較して切り捨てられます。ステートメントダイジェストの詳細については、セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。
-
コマンド行形式 --max-error-count=#システム変数 max_error_countスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 1024最小値 0最大値 65535SHOW ERRORSおよびSHOW WARNINGSステートメントで表示するために格納されるエラー、警告および情報メッセージの最大数。 これは診断領域内の条件領域の数と同じで、GET DIAGNOSTICSによって調査できる条件数と同じです。 -
コマンド行形式 --max-execution-time=#システム変数 max_execution_timeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 0SELECTステートメントの実行タイムアウト (ミリ秒)。 値が 0 の場合、タイムアウトは有効になりません。max_execution_timeは次のように適用されます:グローバル
max_execution_time値は、新しい接続のセッション値のデフォルトを提供します。 セッション値は、MAX_EXECUTION_TIME(オプティマイザヒントを含まない、またはN)Nが 0 のセッション内で実行されるSELECT実行に適用されます。max_execution_timeは、読取り専用のSELECTステートメントに適用されます。 読み取り専用でないステートメントは、副作用としてデータを変更するストアドファンクションを呼び出すステートメントです。ストアドプログラムの
SELECTステートメントでは、max_execution_timeは無視されます。
-
コマンド行形式 --max-heap-table-size=#システム変数 max_heap_table_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 16777216最小値 16384最大値 (64 ビットプラットフォーム) 1844674407370954752最大値 (32 ビットプラットフォーム) 4294967295この変数は、ユーザーが作成した
MEMORYテーブルの増加が許可される最大サイズを設定します。 この変数の値はMEMORYテーブルのMAX_ROWS値を計算するために使用されます。 この変数を設定しても、既存のMEMORYテーブルに影響しませんが、CREATE TABLEなどのステートメントでテーブルを再作成したり、ALTER TABLEまたはTRUNCATE TABLEでテーブルを変更したりした場合は影響します。 サーバーを再起動しても、既存のMEMORYテーブルの最大サイズがグローバルのmax_heap_table_size値に設定されます。この変数は、内部インメモリーテーブルのサイズを制限するために
tmp_table_sizeと一緒に使用されることもあります。 セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。max_heap_table_sizeは複製されません。 詳しくは、セクション17.5.1.21「レプリケーションと MEMORY テーブル」およびセクション17.5.1.39「レプリケーションと変数」を参照してください。 -
非推奨 はい システム変数 max_insert_delayed_threadsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer この変数は、
max_delayed_threadsのシノニムです。このシステム変数は非推奨です (
DELAYEDの挿入はサポートされていないため)。将来のリリースで削除される予定です。 -
コマンド行形式 --max-join-size=#システム変数 max_join_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 18446744073709551615最小値 1最大値 18446744073709551615検査が必要となる行数 (単一テーブルステートメントの場合) または行の組み合わせの数 (複数テーブルステートメントの場合) が、
max_join_sizeをおそらく超えるか、ディスクシークがmax_join_size回を超えて実行される可能性があるステートメントを許可しません。 この値を設定することで、キーが適切に使用されず長い時間がかかりそうなステートメントをキャッチできます。 ユーザーが、WHERE句のない結合、長い時間がかかる結合、または数百万行を返す結合を実行する傾向がある場合にこれを設定します。 詳細は、セーフ更新モードの使用 (--safe-updates)を参照してください。この変数を
DEFAULT以外の値に設定すると、sql_big_selectsの値が0にリセットされます。sql_big_selects値を再設定すると、max_join_size変数は無視されます。 -
コマンド行形式 --max-length-for-sort-data=#非推奨 8.0.20 システム変数 max_length_for_sort_dataスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 4096最小値 4最大値 8388608この変数は、オプティマイザの変更によって廃止され、効果がないため、MySQL 8.0.20 では非推奨になりました。 以前は、使用する
filesortアルゴリズムを決定するインデックス値のサイズに対するカットオフとして機能していました。 セクション8.2.1.16「ORDER BY の最適化」を参照してください。 -
コマンド行形式 --max-points-in-geometry=#システム変数 max_points_in_geometryスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 65536最小値 3最大値 1048576ST_Buffer_Strategy()関数に対するpoints_per_circle引数の最大値。 -
コマンド行形式 --max-prepared-stmt-count=#システム変数 max_prepared_stmt_countスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 16382最小値 0最大値 (≥ 8.0.18) 4194304最大値 (≤ 8.0.17) 1048576この変数は、サーバー内のプリペアドステートメントの総数を制限します。 これは、大量のステートメントを作成することによってサーバーの実行するメモリーを不足させることに基づくサービス妨害攻撃の可能性がある環境で使用できます。 値が現在のプリペアドステートメントの数より低く設定された場合、既存のステートメントは影響を受けずに使用できますが、現在の数が制限を下回るまで新しいステートメントを作成できません。 値を 0 に設定すると、プリペアドステートメントが無効になります。
-
コマンド行形式 --max-seeks-for-key=#システム変数 max_seeks_for_keyスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 (Windows) 4294967295デフォルト値 (その他, 64 ビットプラットフォーム) 18446744073709551615デフォルト値 (その他, 32 ビットプラットフォーム) 4294967295最小値 1最大値 (Windows) 4294967295最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615最大値 (その他, 32 ビットプラットフォーム) 4294967295キーに基づいて行を参照するとき、推定されるシークの最大数を制限します。 MySQL オプティマイザは、インデックスをスキャンすることによってテーブル内で一致する行を検索するとき、インデックスの実際のカーディナリティーに関係なく、この数を超えるキーシークは不要であると推定します (セクション13.7.7.22「SHOW INDEX ステートメント」を参照してください)。 これを低い値 (100 など) に設定することで、MySQL でテーブルスキャンよりもインデックスを優先するように強制できます。
-
コマンド行形式 --max-sort-length=#システム変数 max_sort_lengthスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 1024最小値 4最大値 8388608データ値をソートするときに使用するバイト数。 サーバーは、各値の最初の
max_sort_lengthバイトのみを使用し、残りは無視します。 したがって、最初のmax_sort_lengthバイトの後にのみ異なる値は、GROUP BY、ORDER BYおよびDISTINCT操作で等しいと比較されます。max_sort_lengthの値を増やすには、sort_buffer_sizeの値も増やす必要があります。 詳細は、セクション8.2.1.16「ORDER BY の最適化」を参照してください -
コマンド行形式 --max-sp-recursion-depth[=#]システム変数 max_sp_recursion_depthスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最大値 255任意のストアドプロシージャーを再帰的に呼び出すことができる回数。 このオプションのデフォルト値は 0 で、これはストアドプロシージャーの再帰を完全に無効化します。 最大値は 255 です。
ストアドプロシージャーの再帰により、スレッドスタック領域の要求が増加します。
max_sp_recursion_depthの値を増やした場合、サーバー起動時にthread_stackの値を増やすことによってスレッドスタックサイズを増やすことが必要な場合もあります。 -
コマンド行形式 --max-user-connections=#システム変数 max_user_connectionsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 4294967295任意の MySQL ユーザーアカウントに許可された最大同時接続数。 値 0 (デフォルト) は「制限なし」を意味します。
この変数は、サーバー起動時または実行時に設定できるグローバル値を持ちます。 また、現在のセッションに関連付けられたアカウントに適用される、実際の同時接続制限を示す読み取り専用のセッション値も持ちます。 セッション値は次のように初期化されます。
ユーザーアカウントの
MAX_USER_CONNECTIONSリソース制限がゼロでない場合、セッションmax_user_connectionsの値はその制限値に設定されます。そうでない場合、セッション
max_user_connectionsの値はグローバル値に設定されます。
アカウントのリソース制限は、
CREATE USERステートメントまたはALTER USERステートメントを使用して指定します。 セクション6.2.20「アカウントリソース制限の設定」を参照してください。 -
コマンド行形式 --max-write-lock-count=#システム変数 max_write_lock_countスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 (Windows) 4294967295デフォルト値 (その他, 64 ビットプラットフォーム) 18446744073709551615デフォルト値 (その他, 32 ビットプラットフォーム) 4294967295最小値 1最大値 (Windows) 4294967295最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615最大値 (その他, 32 ビットプラットフォーム) 4294967295この大きさの書き込みロックのあと、保留中の読み取りロックリクエストの処理を間で許可します。 書き込みロック要求の優先順位は、読み取りロック要求よりも高くなります。 ただし、
max_write_lock_countがある程度低い値 (たとえば、10) に設定されている場合、読み取りロック要求がすでに 10 個の書き込みロック要求を優先して渡されていれば、保留中の書き込みロック要求よりも読み取りロック要求が優先されることがあります。 通常、max_write_lock_countのデフォルト値は非常に大きいため、この動作は発生しません。 -
コマンド行形式 --mecab-rc-file=file_nameシステム変数 mecab_rc_fileスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 mecab_rc_fileオプションは、MeCab 全文パーサーの設定時に使用されます。mecab_rc_fileオプションは、MeCab の構成ファイルであるmecabrc構成ファイルへのパスを定義します。 このオプションは読取り専用で、起動時にのみ設定できます。 MeCab を初期化するには、mecabrc構成ファイルが必要です。MeCab 全文パーサーの詳細は、セクション12.10.9「MeCab フルテキストパーサープラグイン」 を参照してください。
MeCab
mecabrc構成ファイルで指定できるオプションの詳細は、「Google 開発者」サイトの「MeCab ドキュメント」を参照してください。 -
コマンド行形式 --metadata-locks-cache-size=#非推奨 はい (removed in 8.0.13) システム変数 metadata_locks_cache_sizeスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 1024最小値 1最大値 1048576このシステム変数は、MySQL 8.0.13 で削除されました。
-
コマンド行形式 --metadata-locks-hash-instances=#非推奨 はい (removed in 8.0.13) システム変数 metadata_locks_hash_instancesスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 8最小値 1最大値 1024このシステム変数は、MySQL 8.0.13 で削除されました。
-
コマンド行形式 --min-examined-row-limit=#システム変数 min_examined_row_limitスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295これよりも少ない行数を検査するクエリーは、スロークエリーログに記録されません。
-
コマンド行形式 --myisam-data-pointer-size=#システム変数 myisam_data_pointer_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 6最小値 2最大値 7MAX_ROWSオプションが指定されていない場合にMyISAMテーブルのCREATE TABLEによって使用されるバイト単位のデフォルトポインタサイズ。 この値を 2 より小さくしたり 7 より大きくしたりすることはできません。 デフォルト値は 6 です。 セクションB.3.2.10「テーブルが満杯です」を参照してください。 -
コマンド行形式 --myisam-max-sort-file-size=#システム変数 myisam_max_sort_file_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 (Windows) 2146435072デフォルト値 (その他, 64 ビットプラットフォーム) 9223372036853727232デフォルト値 (その他, 32 ビットプラットフォーム) 2147483648最大値 (Windows) 2146435072最大値 (その他, 64 ビットプラットフォーム) 9223372036853727232最大値 (その他, 32 ビットプラットフォーム) 2147483648MyISAMインデックスの再作成時 (REPAIR TABLE、ALTER TABLEまたはLOAD DATA) に MySQL で使用できる一時ファイルの最大サイズ。 ファイルサイズがこの値より大きい場合、さらに低速なキーキャッシュを代わりに使用してインデックスが作成されます。 値はバイト単位で指定されます。MyISAMインデックスファイルがこのサイズを超えて、ディスクスペースが使用できる場合、この値を大きくするとパフォーマンスが向上することがあります。 このスペースは、元のインデックスファイルが配置されているディレクトリを含むファイルシステム内で利用する必要があります。 -
コマンド行形式 --myisam-mmap-size=#システム変数 myisam_mmap_sizeスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 (64 ビットプラットフォーム) 18446744073709551615デフォルト値 (32 ビットプラットフォーム) 4294967295最小値 7最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295圧縮された
MyISAMファイルのメモリーマッピングに使用する最大のメモリー量。 圧縮されたMyISAMテーブルが多く使用される場合、この値を減らすことで、メモリースワッピングの問題が生じるおそれを低下できます。 -
コマンド行形式 --myisam-recover-options[=list]システム変数 myisam_recover_optionsスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 列挙 デフォルト値 OFF有効な値 OFFDEFAULTBACKUPFORCEQUICKMyISAMのストレージエンジンのリカバリモードを設定します。 変数値は、OFF,DEFAULT,BACKUP,FORCEまたはQUICKの値の任意の組合せです。 複数の値を指定する場合、値をカンマで区切ります。 サーバー起動時に値なしで変数を指定することはDEFAULTを指定することと同じで、明示的な値を""に指定するとリカバリが無効になります (OFFの値と同じ)。 リカバリが有効な場合、mysqld はMyISAMテーブルをオープンするたび、テーブルがクラッシュしたというマークが付いているか、テーブルが正しくクローズしなかったかどうかをチェックします。 (最後のオプションは外部ロックを無効にして実行している場合のみ機能します。) このような場合、mysqld はテーブル上でチェックを実行します。 テーブルが破損していた場合、mysqld は修復を試みます。次のオプションは修復の動作方法に影響します。
オプション 説明 OFFリカバリなし。 DEFAULTバックアップ、強制、クイックチェックを行わないリカバリ。 BACKUPデータファイルがリカバリ中に変更された場合、 ファイルのバックアップをtbl_name.MYDとして保存します。tbl_name-datetime.BAKFORCE.MYDファイルから複数のレコードがなくなる場合でもリカバリを実行します。QUICK削除ブロックがない場合、テーブルの行をチェックしません。 サーバーがテーブルを自動的に修復する前に、サーバーは修復に関するメモをエラーログに書き込みます。 ユーザーが介入せずにほとんどの問題をリカバリできるようにするには、
BACKUP,FORCEオプションを使用します。 これにより、一部の行が削除される場合でもテーブルの修復を強制しますが、古いデータファイルをバックアップとして保持しているため、何が発生したかをあとで検査できます。セクション16.2.1「MyISAM 起動オプション」を参照してください。
-
コマンド行形式 --myisam-repair-threads=#システム変数 myisam_repair_threadsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1最小値 1最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295この値が 1 より大きい場合、
MyISAMテーブルインデックスはRepair by sortingプロセス中に並列で作成されます (各インデックスはインデックス独自のスレッド内)。 デフォルト値は 1 です。注記マルチスレッド修復はまだ beta-quality コードです。
-
コマンド行形式 --myisam-sort-buffer-size=#システム変数 myisam_sort_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 8388608最小値 4096最大値 (Windows, 64 ビットプラットフォーム) 18446744073709551615最大値 (Windows, 32 ビットプラットフォーム) 4294967295最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615最大値 (その他, 32 ビットプラットフォーム) 4294967295REPAIR TABLE中にMyISAMインデックスをソートするときや、CREATE INDEXまたはALTER TABLEを使用してインデックスを作成するときに割り当てられるバッファーのサイズ。 -
コマンド行形式 --myisam-stats-method=nameシステム変数 myisam_stats_methodスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 nulls_unequal有効な値 nulls_equalnulls_unequalnulls_ignoredMyISAMテーブルのインデックス値の分布に関する統計を収集するときに、サーバーがNULL値を扱う方法。 この変数は、nulls_equal、nulls_unequal、およびnulls_ignoredの 3 つの値を指定できます。nulls_equalの場合、すべてのNULLインデックス値を同等として扱い、NULL値の数とサイズが同等の単一値グループを生成します。nulls_unequalの場合、NULL値同士を同等として扱わず、それぞれのNULLはサイズが 1 の別個のグループを生成します。nulls_ignoredの場合、NULL値は無視されます。テーブル統計を生成するために使用する方法は、セクション8.3.8「InnoDB および MyISAM インデックス統計コレクション」に記載されているように、オプティマイザがクエリー実行のためのインデックスを選択する方法に影響を与えます。
-
コマンド行形式 --myisam-use-mmap[={OFF|ON}]システム変数 myisam_use_mmapスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFMyISAMテーブルの読み取りおよび書き込みでメモリーマッピングを使用します。 -
mysql_native_password_proxy_usersコマンド行形式 --mysql-native-password-proxy-users[={OFF|ON}]システム変数 mysql_native_password_proxy_usersスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、
mysql_native_password組込み認証プラグインがプロキシユーザーをサポートするかどうかを制御します。check_proxy_usersシステム変数が有効になっていないかぎり、効果はありません。 ユーザープロキシの詳細は、セクション6.2.18「プロキシユーザー」 を参照してください。 -
コマンド行形式 --named-pipe[={OFF|ON}]システム変数 named_pipeスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ プラットフォーム固有 Windows 型 Boolean デフォルト値 OFF(Windows のみ。) サーバーが名前付きパイプでの接続をサポートしているかどうかを指定します。
-
コマンド行形式 --named-pipe-full-access-group=value導入 8.0.14 システム変数 named_pipe_full_access_groupスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ プラットフォーム固有 Windows 型 文字列 デフォルト値 *everyone*有効な値 *everyone*empty string(Windows のみ。) MySQL サーバーによって作成された名前付きパイプ上のクライアントに付与されるアクセス制御は、
named_pipeシステム変数が名前付きパイプ接続をサポートできるようになっている場合に、正常に通信するために必要な最小値に設定されます。 新しい MySQL クライアントソフトウェアでは、追加の構成なしで名前付きパイプ接続を開くことができますが、古いクライアントソフトウェアでは、名前付きパイプ接続を開くために完全なアクセスが必要になる場合があります。この変数は、古い名前付きパイプクライアントを使用するための十分なアクセス権が MySQL サーバーによってメンバーに付与されている Windows ローカルグループの名前を設定します。 初期状態では、この値はデフォルトで
'*everyone*'に設定されており、古いクライアントがアップグレードされるまで、Windows 上の Everyone グループのユーザーは古いクライアントを引き続き使用できます。 一方、値を空の文字列に設定すると、名前付きパイプへのフルアクセス権が Windows ユーザーに付与されなくなります。 デフォルト値の'*everyone*'では、言語に依存しない方法で Windows の Everyone グループを参照できます。新しい Windows ローカルグループ名 (
mysql_old_client_usersなど) を Windows で作成し、古いクライアントソフトウェアへのアクセスが絶対に必要な場合にこの変数のデフォルト値を置き換えるために使用することが理想的です。 この場合、グループのメンバーシップをできるだけ少ないユーザーに制限し、クライアントソフトウェアのアップグレード時にグループからユーザーを削除します。 古い名前付きパイプクライアントを使用して MySQL への接続を開こうとするグループの非メンバーは、ユーザーが Windows 管理者によってグループに追加され、ログアウトしてログインするまでアクセスが拒否されます (Windows で必要)。 -
コマンド行形式 --net-buffer-length=#システム変数 net_buffer_lengthスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 16384最小値 1024最大値 1048576各クライアントスレッドは、接続バッファーおよび結果バッファーに関連付けられています。 両者は
net_buffer_lengthで与えられたサイズで開始されますが、必要に応じて、max_allowed_packetバイトまで動的に拡大できます。 結果バッファーは、各 SQL ステートメントのあとでnet_buffer_lengthに縮小されます。この変数は通常は変更しませんが、メモリーが非常に少ない場合、クライアントによって送信される予想されるステートメントの長さに設定できます。 ステートメントがこの長さを超えた場合、接続バッファーは自動的に拡大されます。
net_buffer_lengthの最大値は 1M バイトに設定できます。この変数のセッションの値は、読み取り専用です。
-
コマンド行形式 --net-read-timeout=#システム変数 net_read_timeoutスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 30最小値 1読み取りを中止する前に接続からのデータを待機する秒数。 サーバーがクライアントからの読み込みを行うとき、
net_read_timeoutは中止するタイミングを制御するタイムアウト値です。 サーバーがクライアントに書き込みを行うとき、net_write_timeoutは中止するタイミングを制御するタイムアウト値です。slave_net_timeoutも参照してください。 -
コマンド行形式 --net-retry-count=#システム変数 net_retry_countスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 10最小値 1最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295通信ポートでの読み取りまたは書き込みが中断された場合、停止するまでこの回数だけ再試行します。 FreeBSD では内部の中断がすべてのスレッドに送信されるため、この値をきわめて高く設定するようにしてください。
-
コマンド行形式 --net-write-timeout=#システム変数 net_write_timeoutスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 60最小値 1書き込みを中止する前にブロックが接続に書き込まれるのを待機する秒数。
net_read_timeoutも参照してください。 -
コマンド行形式 --new[={OFF|ON}]システム変数 newスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 無効化 skip-new型 Boolean デフォルト値 OFFこの変数は、一部の 4.1 の動作をオンにするために MySQL 4.0 で使用されており、下位互換性のために保持されています。 その値は常に
OFFです。NDB Cluster でこの変数を
ONに設定すると、KEYまたはLINEAR KEY以外のパーティショニングタイプをNDBテーブルとともに使用できるようになります。 この機能は試験的なものであり、本番ではサポートされていません。 追加情報については ユーザー定義のパーティション分割と NDB ストレージエンジン (NDB Cluster)を参照してください。 -
コマンド行形式 --ngram-token-size=#システム変数 ngram_token_sizeスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 2最小値 1最大値 10n-gram 全文パーサーの n-gram トークンサイズを定義します。
ngram_token_sizeオプションは読取り専用で、起動時にのみ変更できます。 デフォルト値は 2 (bigram) です。 最大値は 10 です。この変数の構成方法の詳細は、セクション12.10.8「ngram 全文パーサー」 を参照してください。
-
コマンド行形式 --offline-mode[={OFF|ON}]システム変数 offline_modeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFサーバーが「「オフラインモード」」内にあるかどうか。次の特性があります:
CONNECTION_ADMIN権限 (または非推奨のSUPER権限) を持たない接続クライアントユーザーは、次のリクエストで切断され、適切なエラーが発生します。 切断には、実行中のステートメントの終了およびロックの解放が含まれます。 また、このようなクライアントは新しい接続を開始できず、適切なエラーを受け取ります。CONNECTION_ADMINまたはSUPER権限を持つ接続クライアントユーザーは切断されず、新しい接続を開始してサーバーを管理できます。レプリケーションスレッドは、サーバーへのデータの適用を継続できます。
オフラインモードを制御できるのは、
SYSTEM_VARIABLES_ADMINまたはSUPER権限を持つユーザーのみです。 サーバーをオフラインモードにするには、offline_modeシステム変数の値をOFFからONに変更します。 通常の操作を再開するには、offline_modeをONからOFFに変更します。 オフラインモードでは、アクセスを拒否されたクライアントはER_SERVER_OFFLINE_MODEエラーを受け取ります。 -
コマンド行形式 --old[={OFF|ON}]システム変数 oldスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFoldは互換性変数です。 これはデフォルトでは無効化されていますが、以前のバージョンに存在した動作にサーバーを戻すために、起動時に有効にできます。oldを有効にすると、インデックスヒントのデフォルトの有効範囲が MySQL 5.1.17 より前に使用されていた有効範囲に変更されます。 つまり、FOR句を使用しないインデックスヒントは、インデックスが行の取得に使用する方法についてのみ適用され、ORDER BY句またはGROUP BY句の解決には適用されません。 (セクション8.9.4「インデックスヒント」を参照してください。) レプリケーションのセットアップでこれを有効にする場合は注意してください。 ステートメントベースのバイナリロギングでは、ソースとレプリカのモードが異なると、レプリケーションエラーが発生する可能性があります。 -
コマンド行形式 --old-alter-table[={OFF|ON}]システム変数 old_alter_tableスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数を有効にすると、サーバーは
ALTER TABLE操作を処理する最適化された方法を使用しません。 一時テーブルの使用に戻り、データのコピー後、MySQL 5.0 以前で使用されていたように、一時テーブルを元のテーブルの名前に変更します。ALTER TABLEの操作について詳しくは、セクション13.1.9「ALTER TABLE ステートメント」を参照してください。old_alter_table=ONを使用したALTER TABLE ... DROP PARTITIONは、パーティションテーブルを再構築し、削除されたパーティションから互換性のあるPARTITION ... VALUES定義を持つ別のパーティションにデータを移動しようとします。 別のパーティションに移動できないデータは削除されます。 以前のリリースでは、old_alter_table=ONを使用したALTER TABLE ... DROP PARTITIONは、パーティションに格納されているデータを削除し、パーティションを削除していました。 -
コマンド行形式 --open-files-limit=#システム変数 open_files_limitスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 5000, with possible adjustment最小値 0最大値 platform dependentオペレーティングシステムから mysqld で使用可能なファイル記述子の数:
起動時に、mysqld は、この変数を直接設定するか、mysqld_safe の
--open-files-limitオプションを使用して、リクエストされた値を使用して、setrlimit()でディスクリプタを予約します。 mysqld でエラーToo many open filesが生成された場合は、open_files_limit値を増やしてみてください。 内部的には、この変数の最大値は符号なし整数の最大値ですが、実際の最大値はプラットフォームに依存します。実行時、
open_files_limitの値は、オペレーティングシステムによって実際に mysqld に許可されるファイル記述子の数を示します。これは、起動時に要求される値とは異なる場合があります。 起動時にリクエストされたファイル記述子の数を割り当てることができない場合、mysqld はエラーログに警告を書き込みます。
実際の
open_files_limitの値は、システム起動時に指定された値 (ある場合) と、max_connectionsおよびtable_open_cacheの値に基づき、次の式を使用します。10 + max_connections + (table_open_cache * 2)max_connections * 5MySQL 8.0.19 以上: オペレーティングシステムの制限。
-
MySQL 8.0.19 より前:
オペレーティングシステムの制限 (その制限が正で、Infinity ではない場合)。
オペレーティングシステムの制限が Infinity の場合: 起動時に指定された場合は
open_files_limit値、指定されていない場合は 5000。
サーバーは、それらの値の最大値を使用してファイル記述子の数を取得しようとします。この値は、符号なし整数の最大値に制限されます。 そのような数の記述子を取得できない場合、サーバーはシステムが許可する数だけ取得しようとします。
MySQL がオープンファイルの数を変更できないシステムでは、有効な値は 0 です。
Unix では、ulimit -n コマンドで表示される値より大きい値を設定することはできません。
-
コマンド行形式 --optimizer-prune-level=#システム変数 optimizer_prune_levelスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 1最小値 0最大値 1見込みのない部分的プランをオプティマイザ検索スペースから削除するために、クエリー最適化中に適用される経験則を制御します。 値 0 は、オプティマイザが網羅的な検索を実行できるよう経験則を無効にします。 値 1 は、中間プランによって取得された行の数に基づいて、オプティマイザにプランを削除させます。
-
コマンド行形式 --optimizer-search-depth=#システム変数 optimizer_search_depthスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 62最小値 0最大値 62クエリーオプティマイザによって実行される検索の最大の深さ。 クエリー内の関係の数より値が大きいと、適切なクエリー計画が得られますが、クエリーの実行計画の生成に時間がかかります。 クエリー内の関係の数より値が小さいと、実行プランがすばやく返されますが、結果のプランがまったく最適にならないことがあります。 0 に設定された場合、システムは合理的な値を自動的に選択します。
-
コマンド行形式 --optimizer-switch=valueシステム変数 optimizer_switchスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Set 有効な値 (≥ 8.0.22) batched_key_access={on|off}block_nested_loop={on|off}condition_fanout_filter={on|off}derived_condition_pushdown={on|off}derived_merge={on|off}duplicateweedout={on|off}engine_condition_pushdown={on|off}firstmatch={on|off}hash_join={on|off}index_condition_pushdown={on|off}index_merge={on|off}index_merge_intersection={on|off}index_merge_sort_union={on|off}index_merge_union={on|off}loosescan={on|off}materialization={on|off}mrr={on|off}mrr_cost_based={on|off}prefer_ordering_index={on|off}semijoin={on|off}skip_scan={on|off}subquery_materialization_cost_based={on|off}use_index_extensions={on|off}use_invisible_indexes={on|off}有効な値 (≥ 8.0.21) batched_key_access={on|off}block_nested_loop={on|off}condition_fanout_filter={on|off}derived_merge={on|off}duplicateweedout={on|off}engine_condition_pushdown={on|off}firstmatch={on|off}hash_join={on|off}index_condition_pushdown={on|off}index_merge={on|off}index_merge_intersection={on|off}index_merge_sort_union={on|off}index_merge_union={on|off}loosescan={on|off}materialization={on|off}mrr={on|off}mrr_cost_based={on|off}prefer_ordering_index={on|off}semijoin={on|off}skip_scan={on|off}subquery_materialization_cost_based={on|off}use_index_extensions={on|off}use_invisible_indexes={on|off}有効な値 (≥ 8.0.18) batched_key_access={on|off}block_nested_loop={on|off}condition_fanout_filter={on|off}derived_merge={on|off}duplicateweedout={on|off}engine_condition_pushdown={on|off}firstmatch={on|off}hash_join={on|off}index_condition_pushdown={on|off}index_merge={on|off}index_merge_intersection={on|off}index_merge_sort_union={on|off}index_merge_union={on|off}loosescan={on|off}materialization={on|off}mrr={on|off}mrr_cost_based={on|off}semijoin={on|off}skip_scan={on|off}subquery_materialization_cost_based={on|off}use_index_extensions={on|off}use_invisible_indexes={on|off}有効な値 (≥ 8.0.13) batched_key_access={on|off}block_nested_loop={on|off}condition_fanout_filter={on|off}derived_merge={on|off}duplicateweedout={on|off}engine_condition_pushdown={on|off}firstmatch={on|off}index_condition_pushdown={on|off}index_merge={on|off}index_merge_intersection={on|off}index_merge_sort_union={on|off}index_merge_union={on|off}loosescan={on|off}materialization={on|off}mrr={on|off}mrr_cost_based={on|off}semijoin={on|off}skip_scan={on|off}subquery_materialization_cost_based={on|off}use_index_extensions={on|off}use_invisible_indexes={on|off}有効な値 (≤ 8.0.12) batched_key_access={on|off}block_nested_loop={on|off}condition_fanout_filter={on|off}derived_merge={on|off}duplicateweedout={on|off}engine_condition_pushdown={on|off}firstmatch={on|off}index_condition_pushdown={on|off}index_merge={on|off}index_merge_intersection={on|off}index_merge_sort_union={on|off}index_merge_union={on|off}loosescan={on|off}materialization={on|off}mrr={on|off}mrr_cost_based={on|off}semijoin={on|off}subquery_materialization_cost_based={on|off}use_index_extensions={on|off}use_invisible_indexes={on|off}optimizer_switchシステム変数を使用するとオプティマイザの動作を制御できます。 この変数の値はフラグのセットで、各フラグは対応するオプティマイザの動作の有効または無効を示すonまたはoffを値を持ちます。 この変数はグローバル値およびセッション値を持ち、実行時に変更できます。 グローバル値のデフォルトはサーバーの起動時に設定できます。オプティマイザの現在のフラグセットを表示するには、変数値を選択します。
mysql> SELECT @@optimizer_switch\G *************************** 1. row *************************** @@optimizer_switch: index_merge=on,index_merge_union=on, index_merge_sort_union=on,index_merge_intersection=on, engine_condition_pushdown=on,index_condition_pushdown=on, mrr=on,mrr_cost_based=on,block_nested_loop=on, batched_key_access=off,materialization=on,semijoin=on, loosescan=on,firstmatch=on,duplicateweedout=on, subquery_materialization_cost_based=on, use_index_extensions=on,condition_fanout_filter=on, derived_merge=on,use_invisible_indexes=off,skip_scan=on, hash_join=on,subquery_to_derived=off, prefer_ordering_index=on,hypergraph_optimizer=off, derived_condition_pushdown=onこの変数の構文と、制御するオプティマイザの動作の詳細については、セクション8.9.2「切り替え可能な最適化」を参照してください。
-
コマンド行形式 --optimizer-trace=valueシステム変数 optimizer_traceスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 この変数はオプティマイザのトレースを制御します。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-features=valueシステム変数 optimizer_trace_featuresスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 この変数は選択されたオプティマイザトレース機能を有効または無効にします。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-limit=#システム変数 optimizer_trace_limitスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1表示するオプティマイザトレースの最大数。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-max-mem-size=#システム変数 optimizer_trace_max_mem_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 1048576格納されるオプティマイザトレースの最大累積サイズ。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
コマンド行形式 --optimizer-trace-offset=#システム変数 optimizer_trace_offsetスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 -1表示するオプティマイザトレースのオフセット。 詳細については、「MySQL Internals: Tracing the Optimizer」を参照してください。
-
performance_schema_xxxパフォーマンススキーマのシステム変数は、セクション27.15「パフォーマンススキーマシステム変数」にリストされています。 これらの変数は、パフォーマンススキーマ操作を構成するために使用されることもあります。
-
コマンド行形式 --parser-max-mem-size=#システム変数 parser_max_mem_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 (64 ビットプラットフォーム) 18446744073709551615デフォルト値 (32 ビットプラットフォーム) 4294967295最小値 10000000最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295パーサーで使用可能なメモリーの最大量。 デフォルト値では、使用可能なメモリーに制限はありません。 この値を減らして、長い SQL ステートメントまたは複雑な SQL ステートメントの解析によって生じるメモリー不足の状況から保護できます。
-
コマンド行形式 --partial-revokes[={OFF|ON}]導入 8.0.16 システム変数 partial_revokesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF(部分的な取消しが存在しない場合)ON(部分的な取消しが存在する場合)この変数を有効にすると、権限を部分的に取り消すことができます。 具体的には、グローバルレベルの権限を持つユーザーの場合、
partial_revokesでは、特定のスキーマの権限を取り消しながら、他のスキーマの権限をそのままにすることができます。 たとえば、グローバルUPDATE権限を持つユーザーは、mysqlシステムスキーマに対するこの権限の実行を制限できます。 (または、別の方法で、ユーザーはmysqlスキーマを除くすべてのスキーマに対してUPDATE権限を実行できます。) この意味では、ユーザーのグローバルUPDATE権限は部分的に取り消されます。一度有効にすると、アカウントに権限制限がある場合は
partial_revokesを無効にできません。 そのようなアカウントが存在する場合、partial_revokesの無効化は失敗します:起動時に
partial_revokesを無効にしようとすると、サーバーはエラーメッセージをログに記録し、partial_revokesを有効にします。実行時に
partial_revokesを無効にしようとすると、エラーが発生し、partial_revokes値は変更されません。
この場合に
partial_revokesを無効にするには、まず権限を再付与するか、アカウントを削除して、権限が部分的に取り消された各アカウントを変更します。部分的な取消しを削除する手順などの詳細は、セクション6.2.12「部分取消しを使用した権限の制限」 を参照してください。
-
コマンド行形式 --password-history=#システム変数 password_historyスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 4294967295この変数は、必要な最小パスワード変更数に基づいて以前のパスワードの再利用を制御するグローバルポリシーを定義します。 以前に使用されたアカウントパスワードの場合、この変数は、パスワードを再利用する前に発生する必要がある後続のアカウントパスワード変更の数を示します。 値が 0 (デフォルト) の場合、パスワード変更の数に基づく再利用制限はありません。
この変数への変更は、
PASSWORD HISTORY DEFAULTオプションで定義されたすべてのアカウントにただちに適用されます。CREATE USERステートメントおよびALTER USERステートメントのPASSWORD HISTORYオプションを使用して、個々のアカウントに対して必要に応じて変更のグローバル数のパスワード再利用ポリシーをオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --password-require-current[={OFF|ON}]導入 8.0.13 システム変数 password_require_currentスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、アカウントパスワードを変更しようとする際に、置換する現在のパスワードを指定する必要があるかどうかを制御するグローバルポリシーを定義します。
この変数への変更は、
PASSWORD REQUIRE CURRENT DEFAULTオプションで定義されたすべてのアカウントにただちに適用されます。グローバル検証必須ポリシーは、
CREATE USERステートメントおよびALTER USERステートメントのPASSWORD REQUIREオプションを使用して、個々のアカウントに対して必要に応じてオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --password-reuse-interval=#システム変数 password_reuse_intervalスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 4294967295この変数は、経過時間に基づいて以前のパスワードの再利用を制御するグローバルポリシーを定義します。 以前に使用したアカウントパスワードの場合、この変数は、パスワードを再利用するまでに経過する必要がある日数を示します。 値が 0 (デフォルト) の場合、経過時間に基づく再利用制限はありません。
この変数への変更は、
PASSWORD REUSE INTERVAL DEFAULTオプションで定義されたすべてのアカウントにただちに適用されます。グローバル経過時間パスワード再利用ポリシーは、
CREATE USERステートメントおよびALTER USERステートメントのPASSWORD REUSE INTERVALオプションを使用して、個々のアカウントに対して必要に応じてオーバーライドできます。 セクション6.2.15「パスワード管理」を参照してください。 -
コマンド行形式 --persisted-globals-load[={OFF|ON}]システム変数 persisted_globals_loadスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ON永続化された構成設定をデータディレクトリの
mysqld-auto.cnfファイルからロードするかどうか。 サーバーは通常、このファイルを起動時にほかのすべてのオプションファイルのあとに処理します (セクション4.2.2.2「オプションファイルの使用」 を参照)。persisted_globals_loadを無効にすると、サーバーの起動シーケンスでmysqld-auto.cnfがスキップされます。mysqld-auto.cnfの内容を変更するには、SET PERSIST、SET PERSIST_ONLYおよびRESET PERSISTステートメントを使用します。 セクション5.1.9.3「永続化されるシステム変数」を参照してください。 -
persist_only_admin_x509_subjectコマンド行形式 --persist-only-admin-x509-subject=string導入 8.0.14 システム変数 persist_only_admin_x509_subjectスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 empty stringSET PERSISTおよびSET PERSIST_ONLYを使用すると、システム変数をデータディレクトリ内のmysqld-auto.cnfオプションファイルに永続化できます (セクション13.7.6.1「変数代入の SET 構文」 を参照)。 システム変数を永続化すると、後続のサーバーの再起動に影響する実行時構成の変更が可能になります。これは、MySQL サーバーのホストオプションファイルに直接アクセスする必要がないリモート管理に便利です。 ただし、一部のシステム変数は永続的でないか、特定の制限条件下でのみ永続化できます。persist_only_admin_x509_subjectシステム変数は、ユーザーが永続的に制限されたシステム変数を永続化できるようにするために必要な SSL 証明書の X.509 サブジェクト値を指定します。 デフォルト値は空の文字列で、サブジェクトチェックを無効にして、永続的に制限されたシステム変数をユーザーが永続化できないようにします。persist_only_admin_x509_subjectが空でない場合、暗号化された接続を使用してサーバーに接続し、指定されたサブジェクト値で SSL 証明書を提供するユーザーは、SET PERSIST_ONLYを使用して永続制限付きシステム変数を永続化できます。 永続制限付きシステム変数およびpersist_only_admin_x509_subjectを有効にするように MySQL を構成する手順の詳細は、セクション5.1.9.4「永続的で永続的に制限されないシステム変数」 を参照してください。 -
コマンド行形式 --pid-file=file_nameシステム変数 pid_fileスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 サーバーがプロセス ID を書き込むファイルのパス名。 サーバーは、別のディレクトリを指定する絶対パス名が指定されないかぎり、データディレクトリ内にファイルを作成します。 この変数を指定する場合は、値を指定する必要があります。 この変数を指定しない場合、MySQL はデフォルト値の
を使用します。host_name.pidhost_nameはホストマシンの名前です。プロセス ID ファイルは、mysqld_safe などの他のプログラムでサーバープロセス ID を決定するために使用されます。 Windows では、この変数はデフォルトのエラーログファイル名にも影響します。 セクション5.4.2「エラーログ」 を参照してください。
-
コマンド行形式 --plugin-dir=dir_nameシステム変数 plugin_dirスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 デフォルト値 BASEDIR/lib/pluginプラグインディレクトリのパス名。
プラグインディレクトリがサーバーによって書き込み可能な場合、ユーザーは
SELECT ... INTO DUMPFILEを使用して、ディレクトリ内のファイルに実行可能コードを書き込むことができます。 これを回避するには、plugin_dirをサーバーに対して読取り専用にするか、SELECT書込みを安全に行うことができるディレクトリにsecure_file_privを設定します。 -
コマンド行形式 --port=port_numシステム変数 portスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 3306最小値 0最大値 65535サーバーが TCP/IP 接続を listen するポートの数。 この変数は、
--portオプションで設定できます。 -
コマンド行形式 --preload-buffer-size=#システム変数 preload_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 32768最小値 1024最大値 1073741824インデックスをプリロードしたときに割り当てられるバッファーのサイズ。
-
コマンド行形式 --print-identified-with-as-hex[={OFF|ON}]導入 8.0.17 システム変数 print_identified_with_as_hexスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFSHOW CREATE USERからの出力のIDENTIFIED WITH句に表示されるパスワードハッシュ値には、端末表示やその他の環境に悪影響を与える印刷不可能な文字が含まれている可能性があります。print_identified_with_as_hexを有効にすると、SHOW CREATE USERでは、通常の文字列リテラルではなく 16 進数文字列などのハッシュ値が表示されます。 印刷できない文字を含まないハッシュ値は、この変数が有効になっていても、通常の文字列リテラルとして表示されます。 -
0 または
OFF(デフォルト) に設定した場合、ステートメントのプロファイリングは無効になります。 1 またはONに設定した場合、ステートメントのプロファイリングは有効になり、SHOW PROFILEおよびSHOW PROFILESステートメントはプロファイリング情報へのアクセスを提供します。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
profilingが有効な場合にプロファイリング情報を保持する対象となるステートメントの数。 デフォルト値は 15 です。 最大値は 100 です。 値を 0 に設定すると、プロファイリングは実質的に無効になります。 セクション13.7.7.31「SHOW PROFILES ステートメント」を参照してください。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
protocol_compression_algorithmsコマンド行形式 --protocol-compression-algorithms=value導入 8.0.18 システム変数 protocol_compression_algorithmsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Set デフォルト値 zlib,zstd,uncompressed有効な値 zlibzstduncompressedサーバーが受信接続に対して許可する圧縮アルゴリズム。 これには、クライアントプログラムおよびソース/レプリカレプリケーションまたはグループレプリケーションに参加しているサーバーによる接続が含まれます。 圧縮は
FEDERATEDテーブルの接続には適用されません。protocol_compression_algorithmsは、X プロトコル の接続圧縮を制御しません。 この動作の詳細は、セクション20.5.5「X プラグイン での接続圧縮」 を参照してください。変数値は、次の項目から任意の順序でカンマ区切りの圧縮アルゴリズム名のリストです (大/小文字は区別されません):
zlib:zlib圧縮アルゴリズムを使用する接続を許可します。zstd:zstd圧縮アルゴリズム (zstd 1.3) を使用する接続を許可します。uncompressed: 圧縮解除された接続を許可します。 このアルゴリズム名がprotocol_compression_algorithms値に含まれていない場合、サーバーは圧縮されていない接続を許可しません。 値に指定されている他のアルゴリズムを使用する圧縮接続のみが許可され、圧縮されていない接続へのフォールバックはありません。
zlib,zstd,uncompressedのデフォルト値は、サーバーがすべての圧縮アルゴリズムを許可することを示します。詳細は、セクション4.2.8「接続圧縮制御」を参照してください。
-
システム変数 protocol_versionスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer MySQL Server によって使用されるクライアント/サーバープロトコルのバージョン。
-
システム変数 proxy_userスコープ セッション 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 現在のクライアントが別のユーザーのプロキシの場合、この変数はプロキシユーザーのアカウント名です。 そうでない場合、この変数は
NULLです。 セクション6.2.18「プロキシユーザー」を参照してください。 -
システム変数 pseudo_slave_modeスコープ セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean このシステム変数は、内部サーバー用です。
pseudo_slave_modeは、現在処理しているサーバーより古いサーバーまたは新しいサーバーで発生したトランザクションの正しい処理を支援します。mysqlbinlog は、SQL ステートメントを実行する前にpseudo_slave_modeの値を true に設定します。このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、
REPLICATION_APPLIER権限 (セクション17.3.3「レプリケーション権限チェック」 を参照) または制限付きセッション変数の設定に十分な権限 (セクション5.1.9.1「システム変数権限」 を参照) が必要です。 ただし、この変数はユーザーが設定するためのものではなく、レプリケーションインフラストラクチャによって自動的に設定されることに注意してください。pseudo_slave_modeは、準備された XA トランザクションの処理に次の影響を与えます。これらのトランザクションは、処理セッション (デフォルトでは、XA STARTを発行するセッション) に対して連結または連結解除できます:true で、処理セッションが内部使用
BINLOGステートメントを実行した場合、XA トランザクションは、XA PREPAREまでのトランザクションの最初の部分が終了するとすぐにセッションから自動的にデタッチされるため、XA_RECOVER_ADMIN権限を持つセッションでコミットまたはロールバックできます。false の場合、XA トランザクションは、そのセッションが存続しているかぎり処理セッションにアタッチされたままになり、その間、他のセッションはトランザクションをコミットできません。 準備されたトランザクションは、セッションが切断されるか、サーバーが再起動した場合にのみデタッチされます。
pseudo_slave_modeは、original_commit_timestampレプリケーション遅延タイムスタンプおよびoriginal_server_versionシステム変数に次の影響を与えます:true の場合、
original_commit_timestampまたはoriginal_server_versionを明示的に設定しないトランザクションは別の不明なサーバーで発生しているとみなされるため、値 0(不明) がタイムスタンプとシステム変数の両方に割り当てられます。false の場合、
original_commit_timestampまたはoriginal_server_versionを明示的に設定しないトランザクションは現在のサーバーで発生しているとみなされるため、現在のタイムスタンプと現在のサーバーバージョンがタイムスタンプとシステム変数に割り当てられます。
MySQL 8.0.14 以降では、
pseudo_slave_modeは、サポートされていない (削除または不明な) SQL モードを設定するステートメントの処理に次の影響を与えます:true の場合、サーバーはサポートされていないモードを無視し、警告を生成します。
false の場合、サーバーは
ER_UNSUPPORTED_SQL_MODEでステートメントを拒否します。
-
システム変数 pseudo_thread_idスコープ セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer この変数は内部サーバーで使用します。
警告pseudo_thread_idシステム変数のセッション値を変更すると、CONNECTION_ID()関数によって返される値が変更されます。MySQL 8.0.14 では、このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
コマンド行形式 --query-alloc-block-size=#システム変数 query_alloc_block_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 8192最小値 1024最大値 4294967295単位 bytes ブロックサイズ 1024ステートメントの解析および実行中に作成されたオブジェクトに割り当てられるメモリーブロックの割当てサイズ (バイト)。 メモリーのフラグメント化について問題がある場合、このパラメータを増やすと役立つ場合があります。
-
コマンド行形式 --query-prealloc-size=#システム変数 query_prealloc_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 8192最小値 8192最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295ブロックサイズ 1024ステートメントの解析および実行に使用される永続バッファのサイズ (バイト単位)。 このバッファーは、ステートメント間で解放されません。 複雑なクエリーを発行する場合、
query_prealloc_sizeの値を大きくすると、クエリー実行操作時にサーバーがメモリー割り当てを実行する必要性が低くなるため、パフォーマンスの向上に役立つ場合があります。 -
システム変数 rand_seed1スコープ セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer rand_seed1およびrand_seed2変数は、セッション変数としてのみ存在し、設定はできますが読み取ることはできません。 変数はSHOW VARIABLESの出力に表示されますが、その値は表示されません。これらの変数の目的は、
RAND()関数のレプリケーションをサポートすることです。RAND()を起動するステートメントの場合、ソースはレプリカに 2 つの値を渡し、そこでランダム番号ジェネレータのシードに使用されます。 レプリカは、これらの値を使用して、レプリカ上のRAND()がソースと同じ値を生成するように、rand_seed1およびrand_seed2のセッション変数を設定します。 -
rand_seed1の説明を参照してください。 -
コマンド行形式 --range-alloc-block-size=#システム変数 range_alloc_block_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 4096最小値 4096最大値 (64 ビットプラットフォーム) 18446744073709547520最大値 4294967295ブロックサイズ 1024範囲最適化の実行時に割り当てられるブロックのサイズ (バイト単位)。
-
コマンド行形式 --range-optimizer-max-mem-size=#システム変数 range_optimizer_max_mem_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 8388608最小値 0最大値 18446744073709551615範囲オプティマイザのメモリー消費の制限。 値 0 は 「制限なし」を表します。 オプティマイザによって考慮される実行計画で範囲アクセス方法が使用されているが、オプティマイザはこの方法に必要なメモリー量が制限を超えると見積もった場合、計画を破棄し、他の計画を考慮します。 詳細は、範囲最適化のためのメモリー使用の制限を参照してください。
-
システム変数 rbr_exec_modeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 STRICT有効な値 IDEMPOTENTSTRICTmysqlbinlog による内部使用。 この変数は、サーバーを
IDEMPOTENTモードとSTRICTモードの間で切り替えます。IDEMPOTENTモードでは、mysqlbinlog によって生成されたBINLOGステートメントで重複キーおよびキーのないエラーが抑制されます。 このモードは、既存のデータと競合する原因となるサーバー上で行ベースのバイナリログを再生する場合に役立ちます。mysqlbinlog では、出力に次のように記述して--idempotentオプションを指定すると、このモードが設定されます:SET SESSION RBR_EXEC_MODE=IDEMPOTENT;MySQL 8.0.18 では、このシステム変数のセッション値の設定は制限付き操作ではなくなりました。
-
コマンド行形式 --read-buffer-size=#システム変数 read_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 131072最小値 8192最大値 2147479552MyISAMテーブルの順次スキャンを実行する各スレッドは、スキャンする各テーブルにこのサイズ (バイト単位) のバッファーを割り当てます。 多くの順次スキャンを実行する場合、この値を増やした方がよい場合もあり、デフォルトは 131072 です。 この変数の値は 4K バイトの倍数にしてください。 4KB の倍数ではない値に設定すると、その値は 4KB の最も近い倍数に切り捨てられます。このオプションは、すべてのストレージエンジンの次のコンテキストでも使用されます:
ORDER BYで行をソートするとき、インデックスを一時ファイル (一時テーブルではない) にキャッシュする場合。パーティションに一括挿入する場合。
ネストされたクエリーの結果をキャッシュする場合。
read_buffer_sizeは、他のストレージエンジン固有の方法でも使用されます:MEMORYテーブルのメモリーブロックサイズを決定します。MySQL 8.0.22 以降、
SELECT INTO DUMPFILEおよびSELECT INTO OUTFILEステートメントの実行時に使用されるバッファのread_buffer_sizeの値のかわりにselect_into_buffer_sizeの値が使用されます。さまざまな操作中でのメモリー使用についての詳細は、セクション8.12.3.1「MySQL のメモリーの使用方法」を参照してください。
-
コマンド行形式 --read-only[={OFF|ON}]システム変数 read_onlyスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFread_onlyシステム変数が有効になっている場合、サーバーは、CONNECTION_ADMIN権限 (または非推奨のSUPER権限) を持つユーザー以外のクライアント更新を許可しません。 この変数はデフォルトでは無効になっています。サーバーは
super_read_onlyシステム変数 (デフォルトでは無効) もサポートしていますが、これには次の効果があります:super_read_onlyが有効になっている場合、CONNECTION_ADMINまたはSUPER権限を持つユーザーであっても、サーバーはクライアントの更新を禁止します。super_read_onlyをONに設定すると、read_onlyは暗黙的にONに強制されます。read_onlyをOFFに設定すると、super_read_onlyは暗黙的にOFFに強制されます。
read_onlyが有効な場合でも、サーバーは次の操作を許可します:サーバーがレプリカの場合、レプリケーションスレッドによって実行される更新。 レプリケーション設定では、レプリカサーバー上の
read_onlyを有効にして、レプリカがクライアントからではなくレプリケーションソースサーバーからの更新のみを受け入れるようにすると便利です。現在のバイナリログファイルに存在しない実行されたトランザクションの GTID を格納するシステムテーブル
mysql.gtid_executedに書き込みます。ANALYZE TABLEステートメントまたはOPTIMIZE TABLEステートメントの使用。 読取り専用モードの目的は、テーブルの構造または内容の変更を防ぐことです。 分析および最適化は、そのような変更の条件を備えていません。 これは、たとえば、読取り専用レプリカに対する整合性チェックを mysqlcheck --all-databases --analyze で実行できることを意味します。TEMPORARYテーブルに対する操作。ログテーブル (
mysql.general_logおよびmysql.slow_log) に挿入します。セクション5.4.1「一般クエリーログおよびスロークエリーログの出力先の選択」 を参照してください。UPDATEまたはTRUNCATE TABLE操作などの「パフォーマンススキーマ」テーブルの更新。
レプリケーションソースサーバー上の
read_onlyへの変更は、複製サーバーにレプリケートされません。 この値は、ソースの設定とは無関係にレプリカサーバーに設定できます。read_onlyの有効化の試行 (super_read_onlyの有効化による暗黙的な試行を含む) には、次の条件が適用されます:試行は失敗し、(
LOCK TABLESで取得した) 明示的なロックがあるか、保留中のトランザクションがある場合はエラーが発生します。ロックが解放されてステートメントおよびトランザクションが終了するまで、他のクライアントに進行中のステートメント、アクティブな
LOCK TABLES WRITEまたは進行中のコミットがある間、試行はブロックされます。read_onlyの有効化の試行が保留されているとき、ほかのクライアントによるテーブルロックあるいはトランザクションの開始のリクエストもまたread_onlyが設定されるまでブロックされます。メタデータロックを保持するアクティブなトランザクションがある場合、そのトランザクションが終了するまで試行はブロックされます。
グローバル読み取りロック (
FLUSH TABLES WITH READ LOCKで取得) にはテーブルロックが含まれていないため、read_onlyを有効化できます。
-
コマンド行形式 --read-rnd-buffer-size=#システム変数 read_rnd_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 262144最小値 1最大値 2147483647この変数は、
MyISAMテーブルからの読み取り、ストレージエンジン、および Multi-Range Read の最適化のために使用されます。キーソート操作のあとで、
MyISAMテーブルの行をソート順に読み取るとき、ディスクシークを回避するため行はこのバッファーから読み取られます。 セクション8.2.1.16「ORDER BY の最適化」を参照してください。 この変数を大きい値に設定すると、ORDER BYのパフォーマンスを大幅に向上できます。 ただし、これは各クライアントに割り当てられるバッファーであるため、グローバル変数を大きい値に設定しないでください。 代わりに、大規模なクエリーを実行する必要があるクライアント内からのみセッション変数を変更します。さまざまな操作中でのメモリー使用についての詳細は、セクション8.12.3.1「MySQL のメモリーの使用方法」を参照してください。 Multi-Range Read の最適化については、セクション8.2.1.11「Multi-Range Read の最適化」を参照してください。
-
コマンド行形式 --regexp-stack-limit=#システム変数 regexp_stack_limitスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 8000000最小値 0最大値 2147483647REGEXP_LIKE()および同様の関数によって実行される正規表現照合操作に使用される内部スタックの最大使用可能メモリー (バイト)。セクション12.8.2「正規表現」 を参照してください。 -
コマンド行形式 --regexp-time-limit=#システム変数 regexp_time_limitスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 32最小値 0最大値 2147483647REGEXP_LIKE()および同様の関数によって実行される正規表現照合操作の時間制限 (セクション12.8.2「正規表現」 を参照)。 この制限は、照合エンジンによって実行されるステップの最大許容数として表されるため、実行時間に間接的にのみ影響します。 通常はミリ秒の順序で表示されます。 -
導入 8.0.19 システム変数 require_row_formatスコープ セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、レプリケーションおよび mysqlbinlog による内部サーバーの使用に使用されます。 セッションで実行される DML イベントは、行ベースのバイナリロギング形式でエンコードされたイベントのみに制限され、一時テーブルは作成できません。 制限に従わないクエリーは失敗します。
このシステム変数のセッション値を
ONに設定する場合、権限は必要ありません。 このシステム変数のセッション値をOFFに設定することは制限された操作であり、セッションユーザーには制限されたセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。 -
コマンド行形式 --require-secure-transport[={OFF|ON}]システム変数 require_secure_transportスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFなんらかの形式のセキュアトランスポートを使用するためにサーバーへのクライアント接続が必要かどうか。 この変数が有効な場合、サーバーは TLS/SSL を使用して暗号化された TCP/IP 接続、またはソケットファイル (Unix の場合) または共有メモリー (Windows の場合) を使用する接続のみを許可します。 サーバーはセキュアでない接続試行を拒否し、
ER_SECURE_TRANSPORT_REQUIREDエラーで失敗します。この機能は、優先されるアカウントごとの SSL 要件を補完します。 たとえば、アカウントが
REQUIRE SSLで定義されている場合、require_secure_transportを有効にしても、そのアカウントを使用して Unix ソケットファイルを使用して接続することはできません。サーバーでセキュアなトランスポートを使用できない場合があります。 たとえば、Windows 上のサーバーは、SSL 証明書またはキーファイルを指定せずに
shared_memoryシステム変数を無効にして起動した場合、セキュアなトランスポートをサポートしません。 これらの条件下で、起動時にrequire_secure_transportを有効にしようとすると、サーバーはエラーログにメッセージを書き込み、終了します。 実行時に変数を有効にしようとすると、ER_NO_SECURE_TRANSPORTS_CONFIGUREDエラーで失敗します。暗号化された接続の必須としての構成も参照してください。
-
システム変数 resultset_metadataスコープ セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 FULL有効な値 FULLNONEメタデータ転送がオプションの接続の場合、クライアントは
resultset_metadataシステム変数を設定して、サーバーが結果セットのメタデータを返すかどうかを制御します。 許可される値は、FULL(すべてのメタデータを返します。これがデフォルトです) およびNONE(メタデータを返しません) です。メタデータ以外の接続の場合、
resultset_metadataをNONEに設定するとエラーが発生します。結果セットのメタデータ転送の管理の詳細は、Optional Result Set Metadata を参照してください。
-
secondary_engine_cost_threshold導入 8.0.16 システム変数 secondary_engine_cost_thresholdスコープ セッション 動的 はい SET_VARヒントの適用はい 型 数値 デフォルト値 100000.000000最小値 0最大値 DBL_MAX (maximum double value)セカンダリエンジンへのクエリーオフロードのオプティマイザコストしきい値。
HeatWave で使用します。 MySQL HeatWave User Guide を参照してください。
-
コマンド行形式 --schema-definition-cache=#システム変数 schema_definition_cacheスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 256最小値 256最大値 524288ディクショナリオブジェクトキャッシュに保持できるスキーマ定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。
未使用のスキーマ定義オブジェクトは、使用中の数が
schema_definition_cacheで定義されている容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。0の設定は、スキーマ定義オブジェクトが使用中にディクショナリオブジェクトキャッシュにのみ保持されることを意味します。詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
コマンド行形式 --secure-file-priv=dir_nameシステム変数 secure_file_privスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 platform specific有効な値 empty stringdirnameNULLこの変数は、
LOAD DATAステートメント、SELECT ... INTO OUTFILEステートメントおよびLOAD_FILE()関数によって実行される操作など、データインポートおよびエクスポート操作の影響を制限するために使用されます。 これらの操作は、FILE権限を持つユーザーにのみ許可されます。secure_file_privは、次のように設定できます:空の場合、変数は無効です。 これはセキュアな設定ではありません。
ディレクトリの名前に設定すると、サーバーはインポートおよびエクスポート操作をそのディレクトリ内のファイルでのみ機能するように制限します。 ディレクトリが存在する必要があります。サーバーは作成しません。
NULLに設定されている場合、サーバーはインポートおよびエクスポート操作を無効にします。
次のテーブルに示すように、デフォルト値はプラットフォーム固有であり、
INSTALL_LAYOUTCMake オプションの値によって異なります。 ソースからビルドする場合にデフォルトのsecure_file_priv値を明示的に指定するには、INSTALL_SECURE_FILE_PRIVDIRCMake オプションを使用します。INSTALL_LAYOUT値デフォルトの secure_file_priv値STANDALONEempty DEB,RPM,SVR4/var/lib/mysql-filesそれ以外の場合 CMAKE_INSTALL_PREFIX値の下のmysql-filesサーバーは起動時に
secure_file_privの値をチェックし、値がセキュアでない場合はエラーログに警告を書き込みます。NULL以外の値は、空の場合、値がデータディレクトリまたはそのサブディレクトリである場合、あるいはすべてのユーザーがアクセスできるディレクトリである場合、セキュアでないとみなされます。secure_file_privが存在しないパスに設定されている場合、サーバーはエラーログにエラーメッセージを書き込み、終了します。 -
コマンド行形式 --select-into-buffer-size=#導入 8.0.22 システム変数 select_into_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 131072最小値 8192最大値 2147479552単位 bytes SELECT INTO OUTFILEまたはSELECT INTO DUMPFILEを使用して、バックアップの作成、データ移行またはその他の目的でデータを 1 つ以上のファイルにダンプする場合、書込みをバッファリングしてから、ディスクまたは他のストレージデバイスへの大量の書込み I/O アクティビティのバーストをトリガーし、待機時間の影響を受けやすい他のクエリーを停止することがよくあります。 この変数を使用すると、ストレージデバイスにデータを書き込むために使用されるバッファーのサイズを制御して、バッファーの同期が発生するタイミングを決定できるため、記述した種類の書き込みストールが発生しないようにできます。select_into_buffer_sizeは、read_buffer_sizeに設定された値をオーバーライドします。(select_into_buffer_sizeとread_buffer_sizeのデフォルト値、最大値および最小値は同じです。)select_into_disk_sync_delayを使用して、後で同期が発生するたびに監視されるタイムアウトを設定することもできます。 -
コマンド行形式 --select-into-disk-sync={ON|OFF}導入 8.0.22 システム変数 select_into_disk_syncスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFF有効な値 OFFONONで設定すると、select_into_buffer_sizeを使用して長時間実行されるSELECT INTO OUTFILEステートメントまたはSELECT INTO DUMPFILEステートメントによる出力ファイルへの書込みのバッファ同期が有効になります。 -
コマンド行形式 --select-into-disk-sync-delay=#導入 8.0.22 システム変数 select_into_disk_sync_delayスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 0最小値 0最大値 31536000単位 milliseconds 長時間実行される
SELECT INTO OUTFILEステートメントまたはSELECT INTO DUMPFILEステートメントによる出力ファイルへの書込みのバッファ同期がselect_into_disk_syncで有効になっている場合、この変数は同期後のオプションの遅延 (ミリ秒) を設定します。0(デフォルト) は遅延がないことを意味します。 -
コマンド行形式 --session-track-gtids=valueシステム変数 session_track_gtidsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 OFF有効な値 OFFOWN_GTIDALL_GTIDSサーバーが GTID をクライアントに返すかどうかを制御し、クライアントが GTID を使用してサーバーの状態を追跡できるようにします。 変数値に応じて、各トランザクションの実行の終了時に、サーバーの GTID が取得され、確認の一環としてクライアントに返されます。
session_track_gtidsに使用可能な値は次のとおりです:OFF: サーバーは GTID をクライアントに返しません。 これはデフォルトです。OWN_GTID: サーバーは、最後の確認応答以降に現在のセッションでこのクライアントによって正常にコミットされたすべてのトランザクションの GTID を返します。 通常、これは最後にコミットされたトランザクションの単一 GTID ですが、単一のクライアント要求によって複数のトランザクションが発生した場合、サーバーは関連する GTID をすべて含む GTID セットを返します。ALL_GTIDS: サーバーは、トランザクションが正常にコミットされた時点で読み取るgtid_executedシステム変数のグローバル値を返します。 この GTID セットには、コミットされたばかりのトランザクションの GTID だけでなく、任意のクライアントによってサーバー上でコミットされたすべてのトランザクションが含まれ、現在確認されているトランザクションがコミットされた時点以降にコミットされたトランザクションを含めることができます。
session_track_gtidsはトランザクションコンテキスト内で設定できません。セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
コマンド行形式 --session-track-schema[={OFF|ON}]システム変数 session_track_schemaスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ON現在のセッション内でデフォルトスキーマ (データベース) が設定されたときにサーバーが追跡し、スキーマ名を使用可能にするようクライアントに通知するかどうかを制御します。
スキーマ名トラッカが有効な場合、新しいスキーマ名が古いスキーマ名と同じであっても、デフォルトスキーマが設定されるたびに名前通知が発生します。
セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
コマンド行形式 --session-track-state-change[={OFF|ON}]システム変数 session_track_state_changeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF現在のセッションの状態に対する変更をサーバーが追跡し、状態の変更が発生したときにクライアントに通知するかどうかを制御します。 クライアントセッションステートの次の属性について変更をレポートできます:
デフォルトスキーマ (データベース)。
システム変数のセッション固有の値。
ユーザー定義変数。
一時テーブル
プリペアドステートメント。
セッション状態トラッカが有効になっている場合、新しい属性値が古い属性値と同じであっても、追跡対象のセッション属性を含む変更ごとに通知が発生します。 たとえば、ユーザー定義変数を現在の値に設定すると、通知されます。
session_track_state_change変数は、変更が発生した場合の通知のみを制御し、変更内容は制御しません。 たとえば、状態変更通知は、デフォルトスキーマが設定されている場合や追跡されているセッションシステム変数が割り当てられている場合に発生しますが、通知にはスキーマ名または変数値は含まれません。 スキーマ名またはセッションシステム変数の値の通知を受信するには、それぞれsession_track_schemaまたはsession_track_system_variablesシステム変数を使用します。注記session_track_state_change自体に値を割り当てることは状態変更とはみなされず、そのようにはレポートされません。 ただし、その名前がsession_track_system_variablesの値にリストされている場合、その名前への割当てによって新しい値が通知されます。セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
session_track_system_variablesコマンド行形式 --session-track-system-variables=#システム変数 session_track_system_variablesスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 time_zone, autocommit, character_set_client, character_set_results, character_set_connectionサーバーがセッションシステム変数への割当てを追跡し、割り当てられた各変数の名前と値をクライアントに通知するかどうかを制御します。 変数値は、割当てを追跡する変数のカンマ区切りリストです。 デフォルトでは、通知は
time_zone,autocommit,character_set_client,character_set_resultsおよびcharacter_set_connectionに対して有効になっています。 (後者の 3 つの変数は、SET NAMESの影響を受ける変数です。)*という特別な値を指定すると、サーバーはすべてのセッション変数への割当てを追跡します。 指定する場合、この値は特定のシステム変数名なしで単独で指定する必要があります。セッション変数割当ての通知を無効にするには、
session_track_system_variablesを空の文字列に設定します。セッションシステム変数の追跡が有効になっている場合、新しい値が古い値と同じであっても、追跡対象のセッション変数へのすべての割当てに対して通知が行われます。
セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
session_track_transaction_infoコマンド行形式 --session-track-transaction-info=valueシステム変数 session_track_transaction_infoスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 OFF有効な値 OFFSTATECHARACTERISTICSサーバーが現在のセッション内のトランザクションの状態と特性を追跡し、この情報を使用可能にするようクライアントに通知するかどうかを制御します。 次の
session_track_transaction_info値を使用できます:OFF: トランザクション状態トラッキングを無効にします。 これはデフォルトです。STATE: 特性トラッキングなしでトランザクション状態トラッキングを有効にします。 状態トラッキングを使用すると、クライアントは、トランザクションが進行中かどうか、およびトランザクションをロールバックせずに別のセッションに移動できるかどうかを判断できます。-
CHARACTERISTICS: 特性トラッキングを含むトランザクション状態トラッキングを有効にします。 特性トラッキングを使用すると、クライアントは、元のセッションと同じ特性を持つように、別のセッションでトランザクションを再開する方法を決定できます。 この目的に関連する特性は次のとおりです:ISOLATION LEVEL READ ONLY READ WRITE WITH CONSISTENT SNAPSHOT
クライアントがトランザクションを別のセッションに安全に再配置するには、トランザクションの状態だけでなく、トランザクションの特性も追跡する必要があります。 また、クライアントは、
transaction_isolationおよびtransaction_read_onlyシステム変数を追跡して、セッションのデフォルトを正しく決定する必要があります。 (これらの変数を追跡するには、session_track_system_variablesシステム変数の値にリストします。)セッションステートトラッキングの詳細は、セクション5.1.18「クライアントセッション状態の変更のサーバートラッキング」 を参照してください。
-
sha256_password_auto_generate_rsa_keysコマンド行形式 --sha256-password-auto-generate-rsa-keys[={OFF|ON}]システム変数 sha256_password_auto_generate_rsa_keysスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONサーバーはこの変数を使用して、RSA 秘密/公開鍵ペアファイルがまだ存在しない場合に、それらをデータディレクトリに自動生成するかどうかを決定します。
これらの条件がすべて満たされている場合、サーバーは起動時に RSA 秘密キー/公開キーのペアファイルをデータディレクトリに自動的に生成:
sha256_password_auto_generate_rsa_keysまたはcaching_sha2_password_auto_generate_rsa_keysシステム変数が有効になっており、RSA オプションが指定されていません。RSA ファイルがデータディレクトリにありません。 これらのキーペアファイルを使用すると、sha256_passwordまたはcaching_sha2_passwordプラグインによって認証されたアカウントに対して、暗号化されていない RSA 接続を使用したセキュアなパスワード交換が可能になります。セクション6.4.1.3「SHA-256 プラガブル認証」 および セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。RSA ファイルの自動生成の詳細 (ファイル名や特性など) は、セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」 を参照してください
auto_generate_certsシステム変数は関連していますが、SSL を使用したセキュアな接続に必要な SSL 証明書およびキーファイルの自動生成を制御します。 -
sha256_password_private_key_pathコマンド行形式 --sha256-password-private-key-path=file_nameシステム変数 sha256_password_private_key_pathスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 private_key.pemこの変数の値は、
sha256_password認証プラグインの RSA 秘密キーファイルのパス名です。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。重要このファイルは秘密鍵を格納しているため、MySQL Server のみがファイルを読み取りできるようにファイルのアクセスモードを制限します。
sha256_passwordについては、セクション6.4.1.3「SHA-256 プラガブル認証」を参照してください。 -
コマンド行形式 --sha256-password-proxy-users[={OFF|ON}]システム変数 sha256_password_proxy_usersスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、
sha256_password組込み認証プラグインがプロキシユーザーをサポートするかどうかを制御します。check_proxy_usersシステム変数が有効になっていないかぎり、効果はありません。 ユーザープロキシの詳細は、セクション6.2.18「プロキシユーザー」 を参照してください。 -
sha256_password_public_key_pathコマンド行形式 --sha256-password-public-key-path=file_nameシステム変数 sha256_password_public_key_pathスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 public_key.pemこの変数の値は、
sha256_password認証プラグインの RSA 公開キーファイルのパス名です。 ファイル名が相対パスとして指定された場合、サーバーのデータディレクトリを基準として解釈されます。 ファイルは PEM 形式である必要があります。 このファイルは公開鍵を格納しているため、クライアントユーザーに対してコピーを自由に配布できます。 (RSA パスワード暗号化を使用してサーバーに接続するときに公開鍵を明示的に指定するクライアントは、サーバーで使用されるものと同じ公開鍵を使用する必要があります。)クライアントが RSA 公開キーを指定する方法など、
sha256_passwordの詳細は、セクション6.4.1.3「SHA-256 プラガブル認証」 を参照してください。 -
コマンド行形式 --shared-memory[={OFF|ON}]システム変数 shared_memoryスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ プラットフォーム固有 Windows 型 Boolean デフォルト値 OFF(Windows のみ。) サーバーが共有メモリー接続を許可するかどうか。
-
コマンド行形式 --shared-memory-base-name=nameシステム変数 shared_memory_base_nameスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ プラットフォーム固有 Windows 型 文字列 デフォルト値 MYSQL(Windows のみ。) 共有メモリー接続に使用する共有メモリーの名前。 これは、単一の物理マシン上で複数の MySQL インスタンスを実行する場合に便利です。 デフォルト名は
MYSQLです。 名前では大文字と小文字が区別されます。この変数は、共有メモリー接続をサポートするために
shared_memoryシステム変数を有効にしてサーバーを起動した場合にのみ適用されます。 -
show_create_table_skip_secondary_engineコマンド行形式 --show-create-table-skip-secondary-engine[={OFF|ON}]導入 8.0.18 システム変数 show_create_table_skip_secondary_engineスコープ セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFFshow_create_table_skip_secondary_engineを有効にすると、SECONDARY ENGINE句がSHOW CREATE TABLE出力および mysqldump ユーティリティによってダンプされたCREATE TABLEステートメントから除外されます。mysqldump には
--show-create-skip-secondary-engineオプションが用意されています。 指定すると、ダンプ操作中にshow_create_table_skip_secondary_engineシステム変数が有効になります。show_create_table_skip_secondary_engine変数をサポートしていない MySQL 8.0.18 より前のリリースで--show-create-skip-secondary-engineオプションを使用して mysqldump 操作を試行すると、エラーが発生します。HeatWave で使用します。 MySQL HeatWave User Guide を参照してください。
-
コマンド行形式 --show-create-table-verbosity[={OFF|ON}]システム変数 show_create_table_verbosityスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF行フォーマットがデフォルトフォーマットの場合、
SHOW CREATE TABLEでは通常、ROW_FORMATテーブルオプションは表示されません。 この変数を有効にすると、SHOW CREATE TABLEでは、デフォルトフォーマットであるかどうかに関係なく、ROW_FORMATが表示されます。 -
コマンド行形式 --show-old-temporals[={OFF|ON}]非推奨 はい システム変数 show_old_temporalsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFSHOW CREATE TABLE出力に、5.6.4 より前の形式で検出された時間的カラムにフラグを付けるコメントが含まれるかどうか (TIME、DATETIMEおよびTIMESTAMPカラムで小数秒精度はサポートされません)。 この変数はデフォルトでは無効になっています。 有効な場合、SHOW CREATE TABLE出力は次のようになります:CREATE TABLE `mytbl` ( `ts` timestamp /* 5.5 binary format */ NOT NULL DEFAULT CURRENT_TIMESTAMP, `dt` datetime /* 5.5 binary format */ DEFAULT NULL, `t` time /* 5.5 binary format */ DEFAULT NULL ) DEFAULT CHARSET=utf8mb4INFORMATION_SCHEMA.COLUMNSテーブルのCOLUMN_TYPEカラムの出力も同様に影響を受けます。この変数は非推奨です。将来の MySQL リリースで削除される予定です。
-
コマンド行形式 --skip-external-locking[={OFF|ON}]システム変数 skip_external_lockingスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこれは、mysqld が外部ロック (システムロック) を使用する場合は
OFFで、外部ロックが無効な場合はONです。 これは、MyISAMテーブルアクセスにのみ影響します。この変数は、
--external-lockingまたは--skip-external-lockingオプションによって設定されます。 外部ロックはデフォルトで無効になっています。外部ロックは
MyISAMテーブルアクセスにのみ影響します。 使用できるまたはできない状況も含めた詳細情報については、セクション8.11.5「外部ロック」を参照してください。 -
コマンド行形式 --skip-name-resolve[={OFF|ON}]システム変数 skip_name_resolveスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFクライアント接続のチェック時にホスト名を解決するかどうか。 この変数が
OFFの場合、mysqld はクライアント接続のチェック時にホスト名を解決します。ONの場合、mysqld は IP 番号のみを使用します。この場合、付与テーブル内のすべてのHostカラム値は IP アドレスである必要があります。 セクション5.1.12.3「DNS ルックアップとホストキャッシュ」を参照してください。システムのネットワーク構成およびアカウントの
Host値によっては、クライアントは--host=127.0.0.1や--host=::1などの明示的な--hostオプションを使用して接続する必要がある場合があります。ホスト
127.0.0.1への接続を試みると、通常localhostアカウントに解決します。 ただし、サーバーがskip_name_resolveを有効にして実行されている場合、これは失敗します。 これを行う場合は、接続を受け入れることができるアカウントが存在することを確認します。 たとえば、--host=127.0.0.1または--host=::1を使用してrootとして接続できるようにするには、次のアカウントを作成します:CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password'; CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password'; -
コマンド行形式 --skip-networking[={OFF|ON}]システム変数 skip_networkingスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、サーバーが TCP/IP 接続を許可するかどうかを制御します。 デフォルトでは無効になっています (TCP 接続を許可します)。 有効な場合、サーバーはローカル (TCP/IP 以外) 接続のみを許可し、mysqld とのすべての対話は、名前付きパイプ、共有メモリー (Windows の場合) または Unix ソケットファイル (Unix の場合) を使用して行う必要があります。 このオプションは、ローカルクライアントのみが許可されているシステムで強く推奨します。 セクション5.1.12.3「DNS ルックアップとホストキャッシュ」を参照してください。
--skip-grant-tablesを使用してサーバーを起動すると認証チェックが無効になるため、この場合、サーバーはskip_networkingを有効にしてリモート接続も無効にします。 -
コマンド行形式 --skip-show-databaseシステム変数 skip_show_databaseスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ これは、
SHOW DATABASES権限を持っていないユーザーがSHOW DATABASESステートメントを使用することを防ぎます。 ほかのユーザーに属するデータベースをユーザーが表示できることに不安がある場合に、セキュリティーを高めることができます。 この効果はSHOW DATABASES権限によって異なります。変数の値がONの場合、SHOW DATABASESステートメントはSHOW DATABASES権限を持つユーザーにのみ許可され、ステートメントはすべてのデータベース名を表示します。 値がOFFの場合、SHOW DATABASESはすべてのユーザーに許可されますが、ユーザーがSHOW DATABASESまたはほかの権限を持つデータベースの名前のみが表示されます。注意静的グローバル権限はすべてのデータベースに対する権限とみなされるため、静的グローバル権限を使用すると、ユーザーは、部分的な取消しによってデータベースレベルで制限されているデータベースを除き、
SHOW DATABASESを使用するか、INFORMATION_SCHEMAのSCHEMATAテーブルを調べることで、すべてのデータベース名を表示できます。 -
コマンド行形式 --slow-launch-time=#システム変数 slow_launch_timeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 2スレッドを作成する時間がこの秒数より長くかかると、サーバーは
Slow_launch_threadsステータス変数を増やします。 -
コマンド行形式 --slow-query-log[={OFF|ON}]システム変数 slow_query_logスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFスロークエリーログを有効にするかどうか。 値が 0 (または
OFF) の場合はログを無効にし、1 (またはON) の場合はログを有効にします。 ログ出力先はlog_outputシステム変数によって制御され、この値をNONEにした場合はログが有効になっていてもログエントリは書き込まれません。「スロー」の程度は、
long_query_time変数の値によって決定されます。 セクション5.4.5「スロークエリーログ」を参照してください。 -
コマンド行形式 --slow-query-log-file=file_nameシステム変数 slow_query_log_fileスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 host_name-slow.logスロークエリーログファイルの名前。 デフォルト値は
ですが、初期値はhost_name-slow.log--slow_query_log_fileオプションを使用すると変更できます。 -
コマンド行形式 --socket={file_name|pipe_name}システム変数 socketスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 (Windows) MySQLデフォルト値 (その他) /tmp/mysql.sockUnix プラットフォームでは、この変数は、ローカルクライアント接続に使用されるソケットファイルの名前です。 デフォルトは
/tmp/mysql.sockです。 (一部の配布形式ではディレクトリが異なる場合があり、たとえば RPM の場合は/var/lib/mysqlです。)Windows では、この変数は、ローカルクライアント接続に使用される名前付きパイプの名前です。 デフォルト値は
MySQLです (大/小文字は区別されません)。 -
コマンド行形式 --sort-buffer-size=#システム変数 sort_buffer_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 262144最小値 32768最大値 (Windows) 4294967295最大値 (その他, 64 ビットプラットフォーム) 18446744073709551615最大値 (その他, 32 ビットプラットフォーム) 4294967295ソートを実行する必要がある各セッションは、このサイズのバッファを割り当てます。
sort_buffer_sizeはどのストレージエンジンにも固有ではなく、最適化の一般的な方法で適用されます。 少なくとも、sort_buffer_size値はソートバッファー内の 15 個のタプルを収容できる十分な大きさである必要があります。 また、max_sort_lengthの値を増やすには、sort_buffer_sizeの値を増やす必要がある場合があります。 詳細は、セクション8.2.1.16「ORDER BY の最適化」を参照してくださいSHOW GLOBAL STATUSの出力に表示される秒あたりのSort_merge_passesの数が多い場合、sort_buffer_size値を増やすことで、クエリー最適化またはインデックスの改善によって改善できないORDER BYまたはGROUP BY操作を高速化することを検討できます。オプティマイザは、必要な領域の量を計算しようとしますが、制限まで割り当てることができます。 必要以上に大きく設定すると、ソートを実行するほとんどのクエリーがグローバルに遅くなります。 これはセッション設定として増やし、かつ大きいサイズを必要とするセッションに制限することを推奨します。 Linux の場合、256K バイトおよび 2M バイトのしきい値があり、それより大きい値にするとメモリー割り当てが著しく低速になるため、これらのいずれかの値より低くすることを検討してください。 実験して、ワークロードに最適な値を見つけてください。 セクションB.3.3.5「MySQL が一時ファイルを格納する場所」を参照してください。
許可される
sort_buffer_sizeの最大の設定値は 4G バイト − 1 です。 64 ビットプラットフォームの場合は大きい値が許可されます (64 ビットの Windows の場合は例外で、大きい値は 4G バイト − 1 に切り捨てられて警告が出ます)。 -
システム変数 sql_auto_is_nullスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFFこの変数が有効な場合、自動的に生成された
AUTO_INCREMENT値を正常に挿入するステートメントの後に、次の形式のステートメントを発行してその値を検索できます:SELECT * FROM tbl_name WHERE auto_col IS NULLステートメントが行を返す場合、返される値は
LAST_INSERT_ID()関数を呼び出した場合と同じです。 複数行の挿入後の戻り値などについての詳細は、セクション12.16「情報関数」を参照してください。AUTO_INCREMENT値を正常に挿入できなかった場合、SELECTステートメントは行を返しません。IS NULL比較を使用してAUTO_INCREMENT値を取得する動作は、Access などの一部の ODBC プログラムによって使用されます。 Obtaining Auto-Increment Valuesを参照してください。 この動作は、sql_auto_is_nullをOFFに設定することで無効にできます。MySQL 8.0.16 より前は、
WHEREからauto_colIS NULLWHEREへの変換はステートメントの実行時にのみ実行されていたため、実行中のauto_col= LAST_INSERT_ID()sql_auto_is_nullの値によってクエリーが変換されたかどうかが判断されました。 MySQL 8.0.16 以降では、ステートメントの準備中に変換が実行されます。sql_auto_is_nullのデフォルト値はOFFです。 -
システム変数 sql_big_selectsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 ONOFFに設定されている場合、MySQL は、実行に非常に時間がかかる可能性が高いSELECTステートメント (つまり、オプティマイザが調査対象の行数がmax_join_sizeの値を超えていると見積もるステートメント) を中断します。 これは、推奨されないWHEREステートメントが発行されたときに便利です。 新しい接続のデフォルト値はONで、すべてのSELECTステートメントが許可されます。max_join_sizeシステム変数をDEFAULT以外の値に設定すると、sql_big_selectsはOFFに設定されます。 -
システム変数 sql_buffer_resultスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFF有効にすると、
sql_buffer_resultはSELECTステートメントの結果を一時テーブルに強制的に配置します。 これは、MySQL でテーブルロックを早期に解放するのに役立ち、クライアントに結果を送信するのに長い時間がかかる場合に適していることがあります。 デフォルト値はOFFです。 -
システム変数 sql_log_offスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFF有効な値 OFF(ロギングの有効化)ON(ロギングの無効化)この変数は、一般クエリーログへのロギングを現在のセッションで無効にするかどうかを制御します (一般クエリーログ自体が有効になっていると仮定します)。 デフォルト値は
OFFです (つまり、ロギングを有効にします)。 現在のセッションの一般クエリーロギングを無効または有効にするには、セッションsql_log_off変数をONまたはOFFに設定します。このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
-
コマンド行形式 --sql-mode=nameシステム変数 sql_modeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Set デフォルト値 ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION有効な値 ALLOW_INVALID_DATESANSI_QUOTESERROR_FOR_DIVISION_BY_ZEROHIGH_NOT_PRECEDENCEIGNORE_SPACENO_AUTO_VALUE_ON_ZERONO_BACKSLASH_ESCAPESNO_DIR_IN_CREATENO_ENGINE_SUBSTITUTIONNO_UNSIGNED_SUBTRACTIONNO_ZERO_DATENO_ZERO_IN_DATEONLY_FULL_GROUP_BYPAD_CHAR_TO_FULL_LENGTHPIPES_AS_CONCATREAL_AS_FLOATSTRICT_ALL_TABLESSTRICT_TRANS_TABLESTIME_TRUNCATE_FRACTIONAL現在のサーバー SQL モードで、動的に設定できます。 詳細は、セクション5.1.11「サーバー SQL モード」を参照してください。
注記MySQL インストールプログラムはインストールプロセス中に SQL モードを構成することがあります。
SQL モードがデフォルトまたは期待されているモードと異なる場合、サーバーが起動時に読み取るオプションファイル内の設定を確認してください。
-
システム変数 sql_notesスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ON有効 (デフォルト) にすると、
Noteレベルの診断によってwarning_countが増分され、サーバーによって記録されます。 無効にした場合、Note診断ではwarning_countが増分されず、サーバーでは記録されません。mysqldump には、ダンプファイルをリロードしてもリロード操作の整合性に影響しないイベントの警告が生成されないように、この変数を無効にする出力が含まれています。 -
システム変数 sql_quote_show_createスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ON有効 (デフォルト) にすると、サーバーは
SHOW CREATE TABLEおよびSHOW CREATE DATABASEステートメントの識別子を引用符で囲みます。 使用不可の場合、見積は使用不可になります。 このオプションはデフォルトで有効化されているため、引用が必要な識別子に対してレプリケーションが機能します。 セクション13.7.7.10「SHOW CREATE TABLE ステートメント」およびセクション13.7.7.6「SHOW CREATE DATABASE ステートメント」を参照してください。 -
コマンド行形式 --sql-require-primary-key[={OFF|ON}]導入 8.0.13 システム変数 sql_require_primary_keyスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFF新しいテーブルを作成するステートメントまたは既存のテーブルの構造を変更するステートメントが、テーブルに主キーがあるという要件を強制するかどうか。
このシステム変数のセッション値の設定は制限された操作です。 セッションユーザーには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。
この変数を有効にすると、テーブルに主キーがない場合に発生する可能性のある行ベースのレプリケーションでのパフォーマンスの問題を回避できます。 テーブルに主キーがなく、更新または削除によって複数の行が変更されるとします。 レプリケーションソースサーバーでは、この操作は単一のテーブルスキャンを使用して実行できますが、行ベースのレプリケーションを使用してレプリケートすると、レプリカで変更される行ごとにテーブルスキャンが行われます。 主キーの場合、これらのテーブルスキャンは行われません。
sql_require_primary_keyは実テーブルとTEMPORARYテーブルの両方に適用され、その値に対する変更はレプリカサーバーにレプリケートされます。 MySQL 8.0.18 では、レプリケーションに参加できるストレージエンジンにのみ適用されます。有効にすると、
sql_require_primary_keyには次の効果があります:主キーのない新しいテーブルを作成しようとすると、エラーで失敗します。 これには、
CREATE TABLE ... LIKEが含まれます。CREATE TABLE部分に主キー定義が含まれていないかぎり、CREATE TABLE ... SELECTも含まれます。-
既存のテーブルから主キーを削除しようとすると、エラーで失敗します。ただし、同じ
ALTER TABLEステートメントで主キーを削除して主キーを追加することはできません。テーブルに
UNIQUE NOT NULLインデックスも含まれている場合でも、主キーの削除は失敗します。 主キーのないテーブルをインポートしようとすると、エラーで失敗します。
CHANGE REPLICATION SOURCE TOステートメント (MySQL 8.0.23 の場合) またはCHANGE MASTER TOステートメント (MySQL 8.0.23 の場合) のREQUIRE_TABLE_PRIMARY_KEY_CHECKオプションを使用すると、レプリカは主キーチェック用の独自のポリシーを選択できます。 レプリケーションチャネルのオプションがONに設定されている場合、レプリカはレプリケーション操作で常にsql_require_primary_keyシステム変数に値ONを使用し、主キーが必要です。 このオプションがOFFに設定されている場合、レプリカはレプリケーション操作でsql_require_primary_keyシステム変数に常に値OFFを使用するため、ソースで必要な場合でも主キーは必要ありません。REQUIRE_TABLE_PRIMARY_KEY_CHECKオプションがSTREAM(デフォルト) に設定されている場合、レプリカは各トランザクションのソースからレプリケートされた値を使用します。REQUIRE_TABLE_PRIMARY_KEY_CHECKオプションのSTREAM設定では、レプリケーションチャネルに権限チェックが使用されている場合、PRIVILEGE_CHECKS_USERアカウントには、sql_require_primary_keyシステム変数のセッション値を設定できるように、制限されたセッション変数を設定するのに十分な権限が必要です。ONまたはOFFの設定では、アカウントにこれらの権限は必要ありません。 詳細は、セクション17.3.3「レプリケーション権限チェック」を参照してください。 -
システム変数 sql_safe_updatesスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 OFFこの変数を有効にすると、
WHERE句またはLIMIT句でキーを使用しないUPDATEおよびDELETEステートメントでエラーが発生します。 これにより、キーが正しく使用されず、多くの行が変更または削除される可能性があるUPDATEおよびDELETEステートメントを捕捉できます。 デフォルト値はOFFです。mysql クライアントの場合は、
--safe-updatesオプションを使用してsql_safe_updatesを有効にできます。 詳細は、セーフ更新モードの使用 (--safe-updates)を参照してください。 -
システム変数 sql_select_limitスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer SELECTステートメントから返される最大行数。 詳細は、セーフ更新モードの使用 (--safe-updates)を参照してください。新規接続についてのデフォルト値は、サーバーがテーブルあたりで許可する最大行数です。 標準的なデフォルト値は (232)−1 または (264)−1 です。 制限を変更した場合、デフォルト値は
DEFAULTの値を割り当てることでリストアできます。SELECTにLIMIT句がある場合、LIMITがsql_select_limitの値に優先されます。 -
システム変数 sql_warningsスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこの変数は、警告が発生する場合に、単一行の
INSERTステートメントが情報文字列を生成するかどうかを制御します。 デフォルトはOFFです。 情報文字列を生成するには、値をONに設定します。 -
コマンド行形式 --ssl-ca=file_nameシステム変数 ssl_caスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLPEM 形式の認証局 (CA) 証明書ファイルのパス名。 このファイルには、信頼できる SSL 認証局のリストが含まれています。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-capath=dir_nameシステム変数 ssl_capathスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULLPEM 形式の信頼できる SSL 認証局 (CA) 証明書ファイルを含むディレクトリのパス名。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-cert=file_nameシステム変数 ssl_certスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLPEM 形式のサーバー SSL 公開キー証明書ファイルのパス名。
制限付き暗号または暗号カテゴリを使用する証明書に
ssl_certが設定された状態でサーバーを起動すると、サーバーは暗号化された接続のサポートを無効にして起動します。 暗号制限の詳細は、接続暗号構成 を参照してください。MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-cipher=nameシステム変数 ssl_cipherスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 NULLTLSv1.2までのTLS プロトコルを使用する接続に許可される暗号のリスト。 リスト内の暗号がサポートされていない場合、これらの TLS プロトコルを使用する暗号化された接続は機能しません。
移植性を最大限に高めるために、暗号リストはコロンで区切られた 1 つ以上の暗号名のリストである必要があります。 例:
[mysqld] ssl_cipher="AES128-SHA" ssl_cipher="DHE-RSA-AES128-GCM-SHA256:AES128-SHA"OpenSSL は、https://www.openssl.org/docs/manmaster/man1/ciphers.html の OpenSSL ドキュメントで説明されている暗号を指定するための構文をサポートしています。
MySQL がサポートする暗号化暗号の詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」 を参照してください。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-crl=file_nameシステム変数 ssl_crlスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLPEM 形式の証明書失効リストを含むファイルのパス名。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-crlpath=dir_nameシステム変数 ssl_crlpathスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 デフォルト値 NULLPEM 形式の証明書失効リストファイルを含むディレクトリのパス。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --ssl-fips-mode={OFF|ON|STRICT}システム変数 ssl_fips_modeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 OFF有効な値 OFF(または 0)ON(または 1)STRICT(または 2)サーバー側で FIPS モードを有効にするかどうかを制御します。
ssl_fips_modeシステム変数は、暗号化された接続をサーバーが許可するかどうかの制御には使用されず、許可される暗号化操作に影響する点で、他のssl_システム変数とは異なります。 セクション6.8「FIPS のサポート」を参照してください。xxx次の
ssl_fips_mode値を使用できます:OFF(or 0): FIPS モードを無効にします。ON(or 1): FIPS モードを有効にします。STRICT(or 2): 「strict」 FIPS モードを有効にします。
注記OpenSSL FIPS オブジェクトモジュールが使用できない場合、
ssl_fips_modeに許可される値はOFFのみです。 この場合、起動時にssl_fips_modeをONまたはSTRICTに設定すると、サーバーでエラーメッセージが生成されて終了します。 -
コマンド行形式 --ssl-key=file_nameシステム変数 ssl_keyスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLPEM 形式のサーバー SSL 秘密キーファイルのパス名。 セキュリティを向上させるには、RSA キーサイズが 2048 ビット以上の証明書を使用します。
鍵ファイルがパスフレーズで保護されている場合、サーバーはユーザーにパスフレーズの入力を求めます。 パスワードは対話形式で指定する必要があり、ファイルには格納できません。 パスフレーズが正しくない場合は、鍵を読み取ることができない場合と同様に、プログラムが続行されます。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --stored-program-cache=#システム変数 stored_program_cacheスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 256最小値 16最大値 524288接続あたりでキャッシュされるストアドルーチンの数について、上側のソフトリミットを設定します。 この変数の値は、ストアドプロシージャーおよびストアドファンクションで、MySQL Server によって維持される 2 つのキャッシュそれぞれに保持されるストアドルーチンの数に関して指定します。
ストアドルーチンが実行されると、ルーチン内の先頭または最上位レベルのステートメントが解析される前に、このキャッシュサイズが検査されます。同じタイプのルーチン (どちらが実行されているかによってストアドプロシージャーまたはストアドファンクション) の数が、この変数によって指定される制限を超える場合、対応するキャッシュがフラッシュされ、キャッシュされたオブジェクトに対して以前割り当てられていたメモリーが解放されます。 これにより、ストアドルーチン間に依存関係がある場合でも、キャッシュを安全にフラッシュできます。
ストアドプロシージャおよびストアドファンクションキャッシュは、dictionary object cache のストアドプログラム定義キャッシュパーティションと並行して存在します。 ストアドプロシージャおよびストアドファンクションキャッシュは接続ごとに行われますが、ストアドプログラム定義キャッシュは共有されます。 ストアドプロシージャキャッシュとストアドファンクションキャッシュにオブジェクトが存在するかどうかは、ストアドプログラム定義キャッシュにオブジェクトが存在するかどうかに依存しません。その逆も同様です。 詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
stored_program_definition_cacheコマンド行形式 --stored-program-definition-cache=#システム変数 stored_program_definition_cacheスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 256最小値 256最大値 524288ディクショナリオブジェクトキャッシュに保持できるストアドプログラム定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。
未使用のストアドプログラム定義オブジェクトは、使用中の数が
stored_program_definition_cacheで定義された容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。0 に設定すると、ストアドプログラム定義オブジェクトは、使用中はディクショナリオブジェクトキャッシュにのみ保持されます。
ストアドプログラム定義キャッシュパーティションは、
stored_program_cacheオプションを使用して構成されたストアドプロシージャおよびストアドファンクションキャッシュと並行して存在します。stored_program_cacheオプションは、接続ごとにキャッシュされるストアドプロシージャまたはファンクションの数に弱い上限を設定し、接続がストアドプロシージャまたはファンクションを実行するたびに制限がチェックされます。 一方、ストアドプログラム定義キャッシュパーティションは、他の目的でストアドプログラム定義オブジェクトを格納する共有キャッシュです。 ストアドプログラム定義キャッシュパーティションにオブジェクトが存在しても、ストアドプロシージャキャッシュまたはストアドファンクションキャッシュにオブジェクトが存在するかどうかには依存しません。その逆も同様です。関連情報については、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
コマンド行形式 --super-read-only[={OFF|ON}]システム変数 super_read_onlyスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFread_onlyシステム変数が有効になっている場合、サーバーは、CONNECTION_ADMIN権限 (または非推奨のSUPER権限) を持つユーザー以外のクライアント更新を許可しません。super_read_onlyシステム変数も有効になっている場合、サーバーはCONNECTION_ADMINまたはSUPERを持つユーザーからのクライアント更新を禁止します。 読取り専用モードの説明およびread_onlyとsuper_read_onlyの相互作用の詳細は、read_onlyシステム変数の説明を参照してください。super_read_onlyが有効になっているときにクライアントの更新を防止するには、CREATE FUNCTION(UDF のインストール)、INSTALL PLUGIN、INSTALL COMPONENTなど、必ずしも更新ではないように見える操作を含めます。 これらの操作は、mysqlシステムスキーマのテーブルへの変更を伴うため禁止されています。レプリケーションソースサーバー上の
super_read_onlyへの変更は、複製サーバーにレプリケートされません。 この値は、ソースの設定とは無関係にレプリカに設定できます。 -
コマンド行形式 --syseventlog.facility=value導入 8.0.13 システム変数 syseventlog.facilityスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 daemonsyslogに書き込まれるエラーログ出力の機能 (メッセージを送信しているプログラムのタイプ)。 この変数は、log_sink_syseventlogエラーログコンポーネントがインストールされていないかぎり使用できません。 セクション5.4.2.8「システムログへのエラーロギング」を参照してください。許可される値はオペレーティングシステムによって異なります。システムの
syslogドキュメントを参照してください。この変数は Windows には存在しません。
-
コマンド行形式 --syseventlog.include-pid[={OFF|ON}]導入 8.0.13 システム変数 syseventlog.include_pidスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONsyslogに書き込まれるエラーログ出力の各行にサーバープロセス ID を含めるかどうか。 この変数は、log_sink_syseventlogエラーログコンポーネントがインストールされていないかぎり使用できません。 セクション5.4.2.8「システムログへのエラーロギング」を参照してください。この変数は Windows には存在しません。
-
コマンド行形式 --syseventlog.tag=tag導入 8.0.13 システム変数 syseventlog.tagスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 empty stringsyslogまたは Windows イベントログに書き込まれるエラーログ出力でサーバー識別子に追加されるタグ。 この変数は、log_sink_syseventlogエラーログコンポーネントがインストールされていないかぎり使用できません。 セクション5.4.2.8「システムログへのエラーロギング」を参照してください。デフォルトでは、タグは設定されていないため、サーバー識別子は単に Windows では
MySQLで、他のプラットフォームではmysqldです。tagのタグ値を指定すると、先頭にハイフンが付いたサーバー識別子にタグ値が追加され、syslog識別子mysqld-(または Windows の場合はtagMySQL-) が生成されます。tagWindows で、まだ存在しないタグを使用するには、管理者権限を持つアカウントからサーバーを実行して、タグのレジストリエントリの作成を許可する必要があります。 タグがすでに存在する場合、昇格された権限は必要ありません。
-
システム変数 system_time_zoneスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 サーバーシステムタイムゾーン。 サーバーは実行を開始するとき、マシンのデフォルトからタイムゾーン設定を継承し、サーバーを実行するために使用されるアカウントの環境または起動スクリプトによって変更されることがあります。 値は
system_time_zoneを設定するために使用されます。 通常、タイムゾーンはTZ環境変数で指定されます。 または mysqld_safe スクリプトの--timezoneオプションを使用しても指定できます。system_time_zone変数はtime_zoneと異なります。 これらは同じ値になることもありますが、後者の変数は、接続する各クライアントのタイムゾーンを初期化するために使用されます。 セクション5.1.15「MySQL Server でのタイムゾーンのサポート」を参照してください。 -
コマンド行形式 --table-definition-cache=#システム変数 table_definition_cacheスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 -1(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 400最大値 524288定義キャッシュに格納できるテーブル定義の数。 多数のテーブルを使用する場合、大きいテーブル定義キャッシュを作成して、テーブルを開くことを高速化できます。 標準のテーブルキャッシュと異なり、テーブル定義キャッシュは占有スペースが少なくファイルディスクリプタを使用しません。 最小値は 400 です。 デフォルト値は次の式に基づき、2000 までに制限されています。
MIN(400 + table_open_cache / 2, 2000)InnoDBの場合、table_definition_cacheは、InnoDBデータディクショナリキャッシュ内の開いているテーブルインスタンスの数のソフト制限として機能します。 開いているテーブルインスタンスの数がtable_definition_cache設定を超えた場合、LRU メカニズムはエビクション用のテーブルインスタンスにマークを付け、最終的にデータディクショナリキャッシュから削除されます。 この制限は、次回サーバー開始までに使用頻度が低いテーブルインスタンスをキャッシュするために大量のメモリーが使用されるような状況に対処するのに役立ちます。 外部キー関係を持つ親テーブルインスタンスおよび子テーブルインスタンスは LRU リストに配置されず、メモリーから削除されないため、キャッシュされたメタデータを持つテーブルインスタンスの数は、table_definition_cacheで定義された制限を超える可能性があります。さらに、
table_definition_cacheは、一度に開くことができる、InnoDBfile-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 デフォルト値 OFFdefault_table_encryption設定とは異なる暗号化を使用してスキーマまたは一般テーブルスペースを作成または変更する場合、またはデフォルトのスキーマ暗号化とは異なる暗号化設定を使用してテーブルを作成または変更する場合に発生するTABLE_ENCRYPTION_ADMIN権限チェックを制御します。 このチェックはデフォルトで無効になっています。実行時に
table_encryption_privilege_checkを設定するには、SUPER権限が必要です。table_encryption_privilege_checkは、SET PERSISTおよびSET PERSIST_ONLY構文をサポートしています。 セクション5.1.9.3「永続化されるシステム変数」を参照してください。詳細は、スキーマおよび一般テーブルスペースの暗号化デフォルトの定義を参照してください。
-
コマンド行形式 --table-open-cache=#システム変数 table_open_cacheスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 4000最小値 1最大値 524288すべてのスレッドについて開いているテーブルの数。 この値を大きくすると、mysqld が要求するファイルディスクリプタの数が増加します。
Opened_tablesステータス変数を検査して、テーブルキャッシュを増やす必要があるかどうかを確認できます。 セクション5.1.10「サーバーステータス変数」を参照してください。Opened_tablesの値が大きく、FLUSH TABLESをあまり使用しない場合 (すべてのテーブルのクローズおよび再オープンの強制のみを実行する)、table_open_cache変数の値を増やします。 テーブルキャッシュに関する詳細は、セクション8.4.3.1「MySQL でのテーブルのオープンとクローズの方法」を参照してください。 -
コマンド行形式 --table-open-cache-instances=#システム変数 table_open_cache_instancesスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 16最小値 1最大値 64オープンテーブルキャッシュインスタンスの数。 セッション間の競合を減少させることでスケーラビリティーを改善するために、開いているテーブルキャッシュを、サイズが
table_open_cache/table_open_cache_instancesのいくつかの小さいキャッシュインスタンスにパーティション化できます。 DML ステートメントでは、セッションはインスタンスにアクセスするために、1 つのインスタンスのみロックする必要があります。 このセグメントキャッシュは複数インスタンスにわたってアクセスし、多くのセッションがテーブルにアクセスする場合にキャッシュを使用する演算の高いパフォーマンスが可能になります。 (DDL ステートメントでは引き続きキャッシュ全体のロックが必要ですが、そのようなステートメントは DML ステートメントよりも頻度がずっと低くなります。)通常 16 以上のコアを使用するシステムでは、8 または 16 の値が推奨されます。
-
コマンド行形式 --tablespace-definition-cache=#システム変数 tablespace_definition_cacheスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 256最小値 256最大値 524288ディクショナリオブジェクトキャッシュに保持できるテーブルスペース定義オブジェクト (使用済と未使用の両方) の数の制限を定義します。
未使用のテーブルスペース定義オブジェクトは、使用中の数が
tablespace_definition_cacheで定義されている容量より少ない場合にのみディクショナリオブジェクトキャッシュに保持されます。0を設定すると、テーブルスペース定義オブジェクトは、使用中はディクショナリオブジェクトキャッシュにのみ保持されます。詳細は、セクション14.4「ディクショナリオブジェクトキャッシュ」を参照してください。
-
コマンド行形式 --temptable-max-mmap=#導入 8.0.23 システム変数 temptable_max_mmapスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1073741824最小値 0最大値 2^64-1TempTable ストレージエンジンがディスク上の
InnoDB内部一時テーブルへのデータの格納を開始する前に、メモリーマップされた一時ファイルから割り当てることができるメモリーの最大量 (バイト単位) を定義します。 0 に設定すると、メモリーマップされた一時ファイルからのメモリーの割り当てが無効になります。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --temptable-max-ram=#システム変数 temptable_max_ramスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1073741824最小値 2097152最大値 2^64-1TempTableストレージエンジンがディスクへのデータの格納を開始する前に占有できるメモリーの最大量を定義します。 デフォルト値は 1073741824 バイト (1GiB) です。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --temptable-use-mmap[={OFF|ON}]導入 8.0.16 システム変数 temptable_use_mmapスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONTempTable ストレージエンジンが占有しているメモリー量が
temptable_max_ram変数で定義されている制限を超えた場合に、TempTable ストレージエンジンがメモリーマップされた一時ファイルとして内部インメモリー一時テーブルの領域を割り当てるかどうかを定義します。temptable_use_mmapが無効になっている場合、TempTable ストレージエンジンは代わりにInnoDBディスク上の内部一時テーブルを使用します。 詳細は、セクション8.4.4「MySQL での内部一時テーブルの使用」を参照してください。 -
コマンド行形式 --thread-cache-size=#システム変数 thread_cache_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 -1(自動サイズ設定を示します。このリテラル値を割り当てないでください)最小値 0最大値 16384サーバーが再使用のためにキャッシュするスレッドの数。 クライアントが接続を切断したとき、スレッド数が
thread_cache_sizeより少なければ、クライアントのスレッドはキャッシュに配置されます。 スレッドのリクエストは、可能であれば、キャッシュからのスレッドを再使用することによって満たされ、キャッシュが空の場合のみ新しいスレッドが作成されます。 多くの新しい接続がある場合、この変数を増やしてパフォーマンスを向上できます。 スレッドの実装が適切な場合、通常はパフォーマンスが著しく改善されることはありません。 ただし、1 秒あたり数百件の接続がサーバーで見られる場合、通常はthread_cache_sizeを十分に高く設定すると、ほとんどの新しい接続でキャッシュされたスレッドを使用できます。 ステータス変数ConnectionsとThreads_createdの差異を調査することで、スレッドキャッシュの効率性を確認できます。 詳細は、セクション5.1.10「サーバーステータス変数」を参照してください。デフォルト値は次の式に基づいており、上限は 100 に制限されています。
8 + (max_connections / 100) -
コマンド行形式 --thread-handling=nameシステム変数 thread_handlingスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 列挙 デフォルト値 one-thread-per-connection有効な値 no-threadsone-thread-per-connectionloaded-dynamically接続スレッドのサーバーによって使用されるスレッド処理モデル。 使用可能な値は、
no-threads(サーバーは単一のスレッドを使用して 1 つの接続を処理)、one-thread-per-connection(サーバーは各クライアント接続を処理するために 1 つのスレッドを使用)、およびloaded-dynamically(スレッドプールプラグインによって初期化時に設定) です。no-threadsは、Linux でのデバッグに役立ちます。セクション5.9「MySQL のデバッグ」 を参照してください。 -
コマンド行形式 --thread-pool-algorithm=#システム変数 thread_pool_algorithmスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 1この変数は、スレッドプールプラグインが使用するアルゴリズムを制御します。
値 0 (デフォルト) では、並列性の低い保守的なアルゴリズムが使用されます。これはもっとも良く検査されていて、非常に良好な結果を生成することが知られています。
値 1 では並列性が高まり、より積極的なアルゴリズムが使用されます。このアルゴリズムは、最適なスレッドカウントでパフォーマンスが 5 - 10% 高まりますが、接続数が増えるにつれてパフォーマンスが低下することが知られています。 この使用は実験的であり、サポートされないものとみなすようにしてください。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
thread_pool_high_priority_connectionコマンド行形式 --thread-pool-high-priority-connection=#システム変数 thread_pool_high_priority_connectionスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 1この変数は、実行前の新規ステートメントのキューイングに影響します。 値が 0 (false、デフォルト) の場合、ステートメントのキューイングでは優先度の低いキューと優先度の高いキューの両方が使用されます。 値が 1 (true) の場合、キューに入れられるステートメントは常に優先度の高いキューに入ります。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
thread_pool_max_active_query_threadsコマンド行形式 --thread-pool-max-active-query-threads導入 8.0.19 システム変数 thread_pool_max_active_query_threadsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 512グループ当たりのアクティブな (実行中の) クエリースレッドの最大許容数。 値が 0 の場合、スレッドプールプラグインは使用可能な最大数のスレッドを使用します。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
thread_pool_max_unused_threadsコマンド行形式 --thread-pool-max-unused-threads=#システム変数 thread_pool_max_unused_threadsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 4096スレッドプール内で許可される最大の未使用スレッド数。 この変数により、スリープ状態のスレッドによって使用されるメモリーの量を制限できます。
値 0 (デフォルト) は、スリープ状態のスレッドの数を制限しないことを意味します。 値
Nは、Nが 0 より大きい場合、1 つのコンシューマスレッドと、N−1 個の予約スレッドを意味します。 この状況で、スレッドがスリープ状態に入ろうとしたが、スリープ状態のスレッド数がすでに最大値に到達している場合、スレッドはスリープ状態に入らずに存在します。スリープ状態のスレッドは、コンシューマスレッドまたは予約スレッドのいずれかとしてスリープ状態になります。 スレッドプールでは、1 つのスレッドがスリープ状態のコンシューマスレッドであることを許可します。 スレッドがスリープ状態になり、既存のコンシューマスレッドがない場合は、コンシューマスレッドとしてスリープします。 スレッドをウェイクアップさせる必要があるとき、コンシューマスレッドが存在すれば、そのコンシューマスレッドが選択されます。 ウェイクアップするコンシューマスレッドがない場合にのみ予約スレッドが選択されます。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-pool-prio-kickup-timer=#システム変数 thread_pool_prio_kickup_timerスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1000最小値 0最大値 4294967294この変数は、優先度が低いキューで実行を待機するステートメントに影響します。 この値は、待機中のステートメントが優先度の高いキューに移されるまでのミリ秒数です。 デフォルトは 1000 (1 秒) です。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-pool-size=#システム変数 thread_pool_sizeスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 16最小値 1最大値 (≥ 8.0.19) 512最大値 (≤ 8.0.18) 64スレッドプール内のスレッドグループの数。 これはスレッドプールのパフォーマンスを制御するもっとも重要なパラメータです。 同時に実行できるステートメントの数に影響します。 許容値の範囲外の値を指定すると、スレッドプールプラグインはロードされず、サーバーはエラーログにメッセージを書き込みます。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-pool-stall-limit=#システム変数 thread_pool_stall_limitスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 6最小値 4最大値 600この変数はステートメントの実行に影響します。 この値は、ステートメントが実行を開始したあと、ステートメントが停滞していると定義される前に終了する時間量で、その時点で、スレッドプールはスレッドグループは別のステートメントの実行の開始を許可します。 値は 10 ミリ秒単位で測定されるため、デフォルトの 6 は 60ms を意味します。 待機の値が短いと、スレッドはよりすみやかに開始できます。 短い値はデッドロック状況を回避により適しています。 長い待機の値は、長時間実行するステートメントを含むワークロードで有用で、現在のステートメントの実行時に多数の新しいステートメントが開始しないようにします。
この変数は、スレッドプールプラグインが有効な場合にのみ使用できます。 セクション5.6.3「MySQL Enterprise Thread Pool」を参照してください。
-
コマンド行形式 --thread-stack=#システム変数 thread_stackスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Integer デフォルト値 (64 ビットプラットフォーム) 286720デフォルト値 (32 ビットプラットフォーム) 221184最小値 131072最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295ブロックサイズ 1024各スレッドのスタックサイズ。 デフォルトは、通常の動作に十分な大きさです。 スレッドスタックサイズが小さすぎると、サーバーで処理できる SQL ステートメントの複雑さ、ストアドプロシージャーの再帰の深さなど、メモリーを大量に消費する処理が制限されます。
-
システム変数 time_zoneスコープ グローバル、セッション 動的 はい SET_VARヒントの適用 (≥ 8.0.17)はい SET_VARヒントの適用 (≤ 8.0.16)いいえ 型 文字列 デフォルト値 SYSTEM最小値 (≥ 8.0.19) -14:00最小値 (≤ 8.0.18) -12:59最大値 (≥ 8.0.19) +14:00最大値 (≤ 8.0.18) +13:00現在のタイムゾーン。 この変数は、接続する各クライアントのタイムゾーンを初期化するために使用されます。 デフォルトでは、この初期値は
'SYSTEM'です (「system_time_zoneの値を使用する」ことを意味します)。 この値はサーバー起動時に--default-time-zoneオプションで明示的に指定できます。 セクション5.1.15「MySQL Server でのタイムゾーンのサポート」を参照してください。注記SYSTEMに設定されている場合、タイムゾーン計算を必要とするすべての MySQL 関数コールは、システムライブラリコールを実行して現在のシステムタイムゾーンを決定します。 このコールはグローバル mutex によって保護される可能性があるため、競合が発生します。 -
システム変数 timestampスコープ セッション 動的 はい SET_VARヒントの適用はい 型 数値 デフォルト値 UNIX_TIMESTAMP()最小値 1最大値 2147483647このクライアントの時間を設定します。 これは、バイナリログを使用して行を復元する場合に元のタイムスタンプを取得するために使用されます。
timestamp_valueは、Unix エポックタイムスタンプ ('形式の値ではなく、YYYY-MM-DD hh:mm:ss'UNIX_TIMESTAMP()によって返される値など) またはDEFAULTである必要があります。timestampを定数値に設定すると、ふたたび変更されるまでその値が保持されます。timestampをDEFAULTに設定すると、その値はアクセスを受けた時点での現在の日付および時間になります。timestampは、値にマイクロ秒部分が含まれているため、BIGINTではなくDOUBLEです。 最大値は、TIMESTAMPデータ型の場合と同じように、'2038-01-19 03:14:07'UTC に対応します。SET timestampはNOW()によって戻された値に影響を及ぼしますが、SYSDATE()によって戻された値には影響しません。 つまり、バイナリログのタイムスタンプ設定は、SYSDATE()の呼び出しに影響しないことを意味します。--sysdate-is-nowオプションを指定してサーバーを起動すると、SYSDATE()をNOW()のシノニムにできます。この場合、SET timestampは両方の機能に影響します。 -
コマンド行形式 --tls-ciphersuites=ciphersuite_list導入 8.0.16 システム変数 tls_ciphersuitesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 NULLTLSv1.3 を使用する暗号化された接続に対してサーバーが許可する暗号スイート。 値は、コロンで区切られたゼロ個以上の暗号スイート名のリストです。
この変数に指定できる暗号スイートは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 この変数が設定されていない場合、デフォルト値は
NULLです。つまり、サーバーは暗号スイートのデフォルトセットを許可します。 変数が空の文字列に設定されている場合、暗号スイートは有効にならず、暗号化された接続を確立できません。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。 -
コマンド行形式 --tls-version=protocol_listシステム変数 tls_versionスコープ グローバル 動的 (≥ 8.0.16) はい 動的 (≤ 8.0.15) いいえ SET_VARヒントの適用いいえ 型 文字列 デフォルト値 (≥ 8.0.16) TLSv1,TLSv1.1,TLSv1.2,TLSv1.3(OpenSSL 1.1.1 以上)TLSv1,TLSv1.1,TLSv1.2(otherwise)デフォルト値 (≤ 8.0.15) TLSv1,TLSv1.1,TLSv1.2暗号化された接続に対してサーバーが許可するプロトコル。 値は、1 つまたは複数のコンマ区切りプロトコル名のリストです。 この変数に指定できるプロトコルは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 「「穴」」をリストに残さないなど、許可されたプロトコルを選択する必要があります。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。
MySQL 8.0.16 では、この変数は動的であり、サーバーが新しい接続に使用する TSL コンテキストに影響を与えるように実行時に変更できます。 サーバー側のランタイム構成および暗号化された接続の監視を参照してください。 MySQL 8.0.16 より前は、この変数はサーバーの起動時にのみ設定できます。
-
コマンド行形式 --tmp-table-size=#システム変数 tmp_table_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Integer デフォルト値 16777216最小値 1024最大値 18446744073709551615内部インメモリーの一時テーブルの最大サイズ。 この変数はユーザーが作成した
MEMORYテーブルには適用されません。実際の制限は、
tmp_table_sizeおよびmax_heap_table_sizeの小さい方です。 インメモリー一時テーブルが制限を超えると、MySQL はそれをディスク上の一時テーブルに自動的に変換します。多数の高度な
GROUP BYクエリーを実行する場合にメモリーが多くあるときは、tmp_table_size(さらに必要に応じてmax_heap_table_size) の値を増やします。作成されたディスク上の内部一時テーブルの数と作成された内部一時テーブルの合計数を比較するには、
Created_tmp_disk_tablesとCreated_tmp_tablesの値を比較します。セクション8.4.4「MySQL での内部一時テーブルの使用」も参照してください。
-
コマンド行形式 --tmpdir=dir_nameシステム変数 tmpdirスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 ディレクトリ名 一時ファイルを作成するために使用するディレクトリのパス。 これは、小さすぎて一時テーブルを保持できないパーティション上にデフォルトの
/tmpディレクトリがある場合に役立つことがあります。 この変数は、ラウンドロビン方式で使用されるいくつかのパスのリストとして設定できます。 パスは、Unix ではコロン文字 (:) で区切り、Windows ではセミコロン文字 (;) で区切る必要があります。tmpdirは、メモリーベースのファイルシステム上のディレクトリや、サーバーホストの再起動時にクリアされるディレクトリなど、非永続的な場所にすることができます。 MySQL サーバーがレプリカとして機能しており、tmpdirに非永続的な場所を使用している場合は、slave_load_tmpdir変数を使用してレプリカに別の一時ディレクトリを設定することを検討してください。 レプリカの場合、LOAD DATAステートメントのレプリケートに使用される一時ファイルはこのディレクトリに格納されるため、永続的な場所ではマシンの再起動後も存続できますが、一時ファイルが削除されている場合は、再起動後もレプリケーションを続行できるようになりました。一時ファイルのストレージ位置に関しては、セクションB.3.3.5「MySQL が一時ファイルを格納する場所」を参照してください。
-
コマンド行形式 --transaction-alloc-block-size=#システム変数 transaction_alloc_block_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 8192最小値 1024最大値 131072ブロックサイズ 1024メモリーを必要とするトランザクションごとのメモリープールを増やす、バイト単位の増加量。
transaction_prealloc_sizeの説明を参照してください。 -
コマンド行形式 --transaction-isolation=nameシステム変数 transaction_isolationスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 REPEATABLE-READ有効な値 READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLEトランザクション分離レベル。 デフォルトは
REPEATABLE-READです。トランザクション分離レベルには 3 つのスコープがあります: グローバル、セッションおよび次のトランザクション。 この 3 スコープの実装は、あとで説明するように、いくつかの非標準のアイソレーションレベルの割り当てセマンティクスにつながります。
起動時にグローバルトランザクション分離レベルを設定するには、
--transaction-isolationサーバーオプションを使用します。実行時には、
SETステートメントを使用してtransaction_isolationシステム変数に値を割り当てるか、SET TRANSACTIONステートメントを使用して間接的に分離レベルを設定できます。transaction_isolationをスペースを含む分離レベル名に直接設定する場合は、スペースをダッシュで置き換えて名前を引用符で囲む必要があります。 たとえば、次のSETステートメントを使用してグローバル値を設定します:SET GLOBAL transaction_isolation = 'READ-COMMITTED';グローバル
transaction_isolation値を設定すると、後続のすべてのセッションの分離レベルが設定されます。 既存のセッションは影響を受けません。セッションまたは次のレベルの
transaction_isolation値を設定するには、SETステートメントを使用します。 ほとんどのセッションシステム変数では、次のステートメントは値を設定する同等の方法です:SET @@SESSION.var_name = value; SET SESSION var_name = value; SET var_name = value; SET @@var_name = value;前述のように、トランザクション分離レベルには、グローバルスコープとセッションスコープに加えて、次のトランザクションスコープがあります。 次のトランザクションスコープを設定できるようにするために、セッションシステム変数値を割り当てるための
SET構文には、transaction_isolationの非標準セマンティクスがあります:-
セッション分離レベルを設定するには、次の構文のいずれかを使用します:
SET @@SESSION.transaction_isolation = value; SET SESSION transaction_isolation = value; SET transaction_isolation = value;これらの構文ごとに、次のセマンティクスが適用されます:
セッション内で実行される後続のすべてのトランザクションの分離レベルを設定します。
トランザクション内で許可されますが、現在進行中のトランザクションには影響しません。
トランザクション間で実行する場合は、次のトランザクション分離レベルを設定する前述のステートメントをオーバーライドします。
SET SESSION TRANSACTION ISOLATION LEVEL(SESSIONキーワードを使用) に対応します。
-
次のトランザクション分離レベルを設定するには、次の構文を使用します:
SET @@transaction_isolation = value;その構文には、次のセマンティクスが適用されます:
分離レベルは、セッション内で次に実行される単一トランザクションに対してのみ設定します。
後続のトランザクションは、セッション分離レベルに戻ります。
トランザクション内では許可されません。
SET TRANSACTION ISOLATION LEVEL(SESSIONキーワードなし) に対応します。
SET TRANSACTIONおよびtransaction_isolationシステム変数との関係の詳細は、セクション13.3.7「SET TRANSACTION ステートメント」 を参照してください。 -
-
コマンド行形式 --transaction-prealloc-size=#システム変数 transaction_prealloc_sizeスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 4096最小値 1024最大値 131072ブロックサイズ 1024トランザクションに関するさまざまな割り当てでメモリーの取得元となる、トランザクションごとのメモリープールが存在します。 プールのバイト単位の初期サイズは
transaction_prealloc_sizeです。 利用できるメモリーが不足しているためプールから十分に行えない各割り当てについて、プールはtransaction_alloc_block_sizeバイトだけ増加されます。 トランザクションが終了すると、プールはtransaction_prealloc_sizeバイトに切り捨てられます。単一トランザクション内のすべてのステートメントを含めるように
transaction_prealloc_sizeを十分に大きくすると、多数のmalloc()コールを避けることができます。 -
コマンド行形式 --transaction-read-only[={OFF|ON}]システム変数 transaction_read_onlyスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFトランザクションアクセスモード。 値は、
OFF(読取り/書込み、デフォルト) またはON(読取り専用) です。トランザクションアクセスモードには 3 つのスコープがあります: グローバル、セッションおよび次のトランザクション。 この 3 スコープの実装は、あとで説明するように、いくつかの非標準のアクセスモード割り当てセマンティクスにつながります。
起動時にグローバルトランザクションアクセスモードを設定するには、
--transaction-read-onlyサーバーオプションを使用します。実行時には、
SETステートメントを使用してtransaction_read_onlyシステム変数に値を割り当てるか、SET TRANSACTIONステートメントを使用して間接的にアクセスモードを設定できます。 たとえば、次のSETステートメントを使用してグローバル値を設定します:SET GLOBAL transaction_read_only = ON;グローバル
transaction_read_only値を設定すると、後続のすべてのセッションのアクセスモードが設定されます。 既存のセッションは影響を受けません。セッションまたは次のレベルの
transaction_read_only値を設定するには、SETステートメントを使用します。 ほとんどのセッションシステム変数では、次のステートメントは値を設定する同等の方法です:SET @@SESSION.var_name = value; SET SESSION var_name = value; SET var_name = value; SET @@var_name = value;前述のように、トランザクションアクセスモードには、グローバルスコープとセッションスコープに加えて、次のトランザクションスコープがあります。 次のトランザクションスコープを設定できるようにするために、セッションシステム変数値を割り当てるための
SET構文には、transaction_read_onlyの非標準セマンティクスがあります。-
セッションアクセスモードを設定するには、次の構文のいずれかを使用します:
SET @@SESSION.transaction_read_only = value; SET SESSION transaction_read_only = value; SET transaction_read_only = value;これらの構文ごとに、次のセマンティクスが適用されます:
セッション内で実行される後続のすべてのトランザクションのアクセスモードを設定します。
トランザクション内で許可されますが、現在進行中のトランザクションには影響しません。
トランザクション間で実行する場合は、次のトランザクションアクセスモードを設定する前述のステートメントをオーバーライドします。
SET SESSION TRANSACTION {READ WRITE | READ ONLY}(SESSIONキーワードを使用) に対応します。
-
次のトランザクションアクセスモードを設定するには、次の構文を使用します:
SET @@transaction_read_only = value;その構文には、次のセマンティクスが適用されます:
セッション内で次に実行される単一トランザクションのアクセスモードのみを設定します。
後続のトランザクションは、セッションアクセスモードに戻ります。
トランザクション内では許可されません。
SET TRANSACTION {READ WRITE | READ ONLY}(SESSIONキーワードなし) に対応します。
SET TRANSACTIONおよびtransaction_read_onlyシステム変数との関係の詳細は、セクション13.3.7「SET TRANSACTION ステートメント」 を参照してください。 -
-
システム変数 unique_checksスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 ON1 に設定した場合 (デフォルト)、
InnoDBテーブルのセカンダリインデックスの一意性チェックが行われます。 0 に設定した場合、ストレージエンジンでは、重複したキーが入力データに存在しないことが想定されます。 一意性違反がデータにないことが確実にわかっている場合、これを 0 に設定してInnoDBへの大きいテーブルのインポートを高速化できます。この変数を 0 に設定しても、require ストレージエンジンは重複キーを無視しません。 エンジンは引き続き、重複キーの存在を検査し、検出された場合に重複キーエラーが生成されます。
-
コマンド行形式 --updatable-views-with-limit[={OFF|ON}]システム変数 updatable_views_with_limitスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 1この変数は、基礎テーブルで定義した主キーのすべてのカラムがビューに含まれていない場合に、更新ステートメントに
LIMIT句が含まれているとき、そのビューの更新を行えるかどうかを制御します。 (このような更新は GUI ツールによって頻繁に生成されます。) 更新はUPDATEまたはDELETEステートメントのことです。 ここでの主キーとはPRIMARY KEYか、カラムにNULLを含むことができないUNIQUEインデックスです。変数は 2 つの値に設定できます。
1またはYES: 警告のみ発行します (エラーメッセージではない)。 これはデフォルト値です。0またはNO: 更新を禁止します。
-
導入 8.0.13 システム変数 use_secondary_engineスコープ セッション 動的 はい SET_VARヒントの適用はい 型 列挙 デフォルト値 ON有効な値 OFFONFORCED将来使用します。
セカンダリエンジンを使用してクエリーを実行するかどうか。
HeatWave で使用します。 MySQL HeatWave User Guide を参照してください。
-
validate_password.xxxvalidate_passwordコンポーネントは、validate_password.という形式の名前を持つ一連のシステム変数を実装します。 これらの変数は、そのコンポーネントによるパスワードテストに影響します。セクション6.4.3.2「パスワード検証オプションおよび変数」 を参照してください。xxx -
コマンド行形式 --validate-user-plugins[={OFF|ON}]システム変数 validate_user_pluginsスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこの変数が有効な場合 (デフォルト)、サーバーは各ユーザーアカウントを検査し、アカウントが使用できなくなる条件が検出された場合に警告を生成します。
アカウントが、ロードされていない認証プラグインを必要としている。
アカウントには
sha256_passwordまたはcaching_sha2_password認証プラグインが必要ですが、プラグインで必要な SSL も RSA も有効にせずにサーバーが起動されました。
validate_user_pluginsを有効にすると、サーバー初期化およびFLUSH PRIVILEGESの速度が低下します。 追加の検査が必要ない場合、この変数を起動時に無効化するとパフォーマンス低下を防ぐことができます。 -
サーバーのバージョン番号。 この値には、サーバーのビルドまたは構成情報を示す接尾辞が含まれることもあります。
-debugは、デバッグサポートを有効にしてサーバーが構築されたことを示します。 -
システム変数 version_commentスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 CMake 構成プログラムには、MySQL の構築時にコメントを指定できる
COMPILATION_COMMENT_SERVERオプションがあります。 この変数は、そのコメントの値を格納します。 (MySQL 8.0.14 より前は、version_commentはCOMPILATION_COMMENTオプションによって設定されていました。) セクション2.9.7「MySQL ソース構成オプション」を参照してください。 -
システム変数 version_compile_machineスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 サーバーバイナリのタイプ。
-
システム変数 version_compile_osスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 MySQL が構築されているオペレーティングシステムのタイプ。
-
システム変数 version_compile_zlibスコープ グローバル 動的 いいえ SET_VARヒントの適用いいえ 型 文字列 コンパイルされた
zlibライブラリのバージョン。 -
コマンド行形式 --wait-timeout=#システム変数 wait_timeoutスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 28800最小値 1最大値 (Windows) 2147483最大値 (その他) 31536000非インタラクティブな接続を閉じる前に、サーバーがその接続上でアクティビティーを待機する秒数。
スレッド開始時に、セッションの
wait_timeout値は、wait_timeoutグローバル値またはinteractive_timeoutグローバル値で初期化されますが、いずれになるかはクライアントのタイプ (mysql_real_connect()に対するCLIENT_INTERACTIVE接続オプションによって定義される) によって決まります。interactive_timeoutも参照してください。 -
メッセージを生成した最後のステートメントから得られたエラー、警告、および注意の数。 この変数は読み取り専用です。 セクション13.7.7.42「SHOW WARNINGS ステートメント」を参照してください。
-
コマンド行形式 --windowing-use-high-precision[={OFF|ON}]システム変数 windowing_use_high_precisionスコープ グローバル、セッション 動的 はい SET_VARヒントの適用はい 型 Boolean デフォルト値 ON精度を失わずにウィンドウ操作を計算するかどうか。 セクション8.2.1.21「ウィンドウ機能最適化」を参照してください。