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


MySQL 8.0 リファレンスマニュアル  /  ...  /  サーバーコマンドオプション

5.1.7 サーバーコマンドオプション

mysqld サーバーを起動するときに、セクション4.2.2「プログラムオプションの指定」に記載されているいずれかの方法で、プログラムオプションを指定できます。 もっとも一般的な方法は、オプションファイルまたはコマンド行でオプションを提供するやり方です。 ただし、ほとんどの場合では、サーバーが毎回実行するときサーバーが必ず同じオプションを使用します。 これを確実に行う最適な方法は、オプションファイルにオプションを一覧表示することです。 セクション4.2.2.2「オプションファイルの使用」を参照してください。 このセクションではオプションファイルの形式および構文についても説明します。

mysqld[mysqld] および [server] グループからオプションを読み取ります。mysqld_safe[mysqld][server][mysqld_safe]、および [safe_mysqld] グループからオプションを読み取ります。mysql.server[mysqld] および [mysql.server] グループからオプションを読み取ります。

mysqld には多くのコマンドオプションがあります。 簡単なサマリーを表示するには、次のコマンドを実行します:

mysqld --help

完全なリストを表示するには、次のコマンドを使用します:

mysqld --verbose --help

リスト内の一部の項目は、実際にはサーバーの起動時に設定できるシステム変数です。 これらは、SHOW VARIABLES ステートメントを使用して実行時に表示できます。 前述の mysqld コマンドで表示される一部の項目は、SHOW VARIABLES 出力には表示されません。これは、これらがシステム変数ではなくオプションであるためです。

次に、もっとも一般的なサーバーオプションの一部を示します。 その他のオプションは、ほかのセクションに記載されています。

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

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

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

オプションとして変数名を使用して、サーバーの起動時にサーバーシステム変数の値を設定することもできます。 サーバーシステム変数に値を割り当てるには、--var_name=value という形式のオプションを使用します。 たとえば、--sort_buffer_size=384Msort_buffer_size 変数を 384MB の値に設定します。

変数に値を割り当てると、特定の範囲内にとどまるように MySQL によって値が自動的に修正されたり、特定の値のみが許可されている場合は最も近い許容値に値が調整されたりすることがあります。

SET ステートメントを使用してシステム変数を実行時に設定できる最大値を制限するには、サーバー起動時に --maximum-var_name=value 形式のオプションを使用して、この最大値を指定します。

ほとんどのシステム変数の値は、SET ステートメントを使用して実行時に変更できます。 セクション13.7.6.1「変数代入の SET 構文」を参照してください。

セクション5.1.8「サーバーシステム変数」 では、すべての変数についての詳細な説明と、サーバーの起動時および実行時にそれらを設定するための追加情報を提供します。 システム変数の変更の詳細は、セクション5.1.1「サーバーの構成」 を参照してください。

  • --help, -?

    コマンド行形式 --help

    短いヘルプメッセージを表示して終了します。 詳細メッセージを表示するには、--verbose および --help の両方のオプションを使用します。

  • --admin-ssl, --skip-admin-ssl

    コマンド行形式 --admin-ssl[={OFF|ON}]
    導入 8.0.21
    Boolean
    デフォルト値 ON

    --admin-ssl オプションは --ssl オプションと似ていますが、メイン接続インタフェースではなく管理接続インタフェースに適用される点が異なります。 これらのインタフェースの詳細は、セクション5.1.12.1「接続インタフェース」 を参照してください。

    --admin-ssl オプションは、サーバーが管理インタフェースで暗号化された接続を許可するが必要としないことを指定します。 このオプションはデフォルトで有効となっています。

    --admin-ssl は、否定形式で --skip-admin-ssl またはシノニム (--admin-ssl=OFF--disable-admin-ssl) として指定できます。 この場合、このオプションは、admin_tsl_xxx および admin_ssl_xxx システム変数の設定に関係なく、サーバーが暗号化された接続を許可しないことを指定します。

    --admin-ssl オプションは、管理インタフェースが暗号化された接続をサポートしているかどうかにサーバーの起動時にのみ有効です。 これは無視され、実行時の ALTER INSTANCE RELOAD TLS の操作には影響しません。 たとえば、--admin-ssl=OFF を使用して、暗号化された接続を無効にして管理インタフェースを起動し、TLS を再構成して ALTER INSTANCE RELOAD TLS FOR CHANNEL mysql_admin を実行し、実行時に暗号化された接続を有効にできます。

    connection-encryption サポートの構成に関する一般情報は、セクション6.3.1「暗号化接続を使用するための MySQL の構成」 を参照してください。 この説明はメイン接続インタフェース用に記述されていますが、パラメータ名は管理接続インタフェース用に似ています。 サーバー側で admin_ssl_cert および admin_ssl_key システム変数を設定し、クライアント側で --ssl-ca (または --ssl-capath) オプションを設定することを検討してください。 管理インタフェースの詳細は、暗号化された接続に対する管理インタフェースのサポート を参照してください。

  • --allow-suspicious-udfs

    コマンド行形式 --allow-suspicious-udfs[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    このオプションは、メイン関数に xxx 記号のみを持つユーザー定義関数をロードできるかどうかを制御します。 デフォルトでは、このオプションはオフで、少なくとも 1 つの補助記号を持つ UDF のみをロードできます。これにより、正当な UDF を含むもの以外の共有オブジェクトファイルから関数をロードしないようにします。 Loadable Function Security Precautionsを参照してください。

  • --ansi

    コマンド行形式 --ansi

    MySQL 構文の代わりに標準 (ANSI) SQL 構文を使用します。 サーバー SQL モードをさらに正確に制御するには、代わりに --sql-mode オプションを使用します。 セクション1.7「MySQL の標準への準拠」およびセクション5.1.11「サーバー SQL モード」を参照してください。

  • --basedir=dir_name, -b dir_name

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

    MySQL インストールディレクトリへのパス。 このオプションは、basedir システム変数を設定します。

    サーバー実行可能ファイルは、起動時に独自のフルパス名を決定し、それが配置されているディレクトリの親をデフォルトの basedir 値として使用します。 これにより、サーバーは、エラーメッセージを含む share ディレクトリなどのサーバー関連情報を検索するときに、その basedir を使用できます。

  • --character-set-client-handshake

    コマンド行形式 --character-set-client-handshake[={OFF|ON}]
    Boolean
    デフォルト値 ON

    クライアントによって送信された文字セット情報を無視しません。 クライアント情報を無視して、サーバーのデフォルトの文字セットを使用するには、--skip-character-set-client-handshake を使用します。これにより、MySQL は MySQL 4.0. のように動作します。

  • --chroot=dir_name, -r dir_name

    コマンド行形式 --chroot=dir_name
    ディレクトリ名

    chroot() のシステムコールを使用して、mysqld サーバーを起動中にクローズ環境にします。 これは推奨されるセキュリティー対策です。 このオプションを使用すると、LOAD DATA および SELECT ... INTO OUTFILE が多少制限されます。

  • --console

    コマンド行形式 --console
    プラットフォーム固有 Windows

    (Windows のみ。) デフォルトのエラーログの出力先をコンソールにします。 これは、デフォルトの宛先に基づく独自の出力先のログシンクに影響します。 セクション5.4.2「エラーログ」 を参照してください。このオプションを使用した場合、mysqld はコンソールウィンドウを閉じません。

    両方が指定されている場合、--console--log-error よりも優先されます。

  • --core-file

    コマンド行形式 --core-file[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    mysqld が異常終了した場合にコアファイルを作成します。 コアファイルの名前および場所はシステムに依存します。 Linux の場合、core.pid という名前のコアファイルがプロセスの現在の作業ディレクトリに書き込まれ、これは mysqld のデータディレクトリです。pid はサーバープロセスのプロセス ID を表します。 macOS では、core.pid というコアファイルが/cores ディレクトリに書き込まれます。 Solaris の場合、coreadm コマンドを使用して、コアファイルの書き込み先と名前を指定する方法を指定します。

    一部のシステムでコアファイルを取得するには、mysqld_safe--core-file-size オプションを指定する必要もあります。 セクション4.3.2「mysqld_safe — MySQL サーバー起動スクリプト」を参照してください。 Solaris などの一部のシステムでは、--user オプションも使用しないとコアファイルを取得できません。 追加の制限または制約がある場合もあります。 たとえば、サーバーを起動する前に ulimit -c unlimited を実行することが必要な場合もあります。 システムのドキュメントを参照してください。

    innodb_buffer_pool_in_core_file 変数を使用すると、それをサポートするオペレーティングシステム上のコアファイルのサイズを縮小できます。 詳細は、セクション15.8.3.7「コアファイルからのバッファープールページの除外」を参照してください。

  • --daemonize, -D

    コマンド行形式 --daemonize[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    このオプションを使用すると、サーバーは従来のフォーキングデーモンとして実行され、systemd を使用してプロセス制御を行うオペレーティングシステムと連携できます。 詳細は、セクション2.5.9「systemd を使用した MySQL Server の管理」を参照してください。

    --daemonize は、--initialize および --initialize-insecure と相互に排他的です。

    サーバーが --daemonize オプションを使用して起動され、tty デバイスに接続されていない場合は、エラー出力をデフォルトのログファイルに送るために、明示的なロギングオプションがないときに --log-error=""のデフォルトのエラーロギングオプションが使用されます。

    -D は、--daemonize のシノニムです。

  • --datadir=dir_name, -h dir_name

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

    MySQL サーバーデータディレクトリへのパス。 このオプションは、datadir システム変数を設定します。 その変数の説明を参照してください。

  • --debug[=debug_options], -# [debug_options]

    コマンド行形式 --debug[=debug_options]
    システム変数 debug
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 (Unix) d:t:i:o,/tmp/mysqld.trace
    デフォルト値 (Windows) d:t:i:O,\mysqld.trace

    MySQL が -DWITH_DEBUG=1 CMake オプションを使用して構成されている場合、このオプションを使用して mysqld が実行しているトレースファイルを取得できます。 一般的な debug_options 文字列は d:t:o,file_name です。 デフォルトは、UNIX の場合は d:t:i:o,/tmp/mysqld.trace、Windows の場合は d:t:i:O,\mysqld.trace です。

    -DWITH_DEBUG=1 を使用して MySQL にデバッグサポートを構成することにより、サーバーを起動するときに --debug="d,parser_debug" オプションを使用できるようになります。 これにより、SQL ステートメントの処理に使用される Bison パーサーが、パーサートレースをサーバーの標準エラー出力にダンプします。 一般的に、この出力はエラーログに書き込まれます。

    このオプションは複数回指定されることがあります。 + または - で開始される値が以前の値に加算または減算されます。 たとえば、--debug=T --debug=+P と指定すると、値は P:T に設定されます。

    詳細については、セクション5.9.4「DBUG パッケージ」を参照してください。

  • --debug-sync-timeout[=N]

    コマンド行形式 --debug-sync-timeout[=#]
    Integer

    テストおよびデバッグのための Debug Sync 機能が有効かどうかを制御します。 デバッグ同期を使用するには、MySQL が -DENABLE_DEBUG_SYNC=1 CMake オプションで構成されている必要があります (セクション2.9.7「MySQL ソース構成オプション」 を参照)。 Debug Sync がコンパイルされていない場合、このオプションは使用できません。 オプション値は秒単位のタイムアウトです。 デフォルト値は 0 で、Debug Sync を無効にします。 これを有効にするには、0 より大きい値を指定してください。この値は、個々の同期点についてのデフォルトのタイムアウトになります。 オプションが値なしで指定された場合、タイムアウトは 300 秒に設定されます。

    Debug Sync 機能および同期点の使用方法についての説明は、「MySQL Internals: Test Synchronization」を参照してください。

  • --default-time-zone=timezone

    コマンド行形式 --default-time-zone=name
    文字列

    デフォルトのサーバータイムゾーンを設定します。 このオプションは、グローバルな time_zone システム変数を設定します。 このオプションを指定しない場合、デフォルトのタイムゾーンは、(system_time_zone システム変数の値によって指定される) システムのタイムゾーンと同一になります。

  • --defaults-extra-file=file_name

    このオプションファイルは、グローバルオプションファイルのあとに読み取りますが、(UNIX では) ユーザーオプションファイルの前に読み取るようにしてください。 ファイルが存在しないかアクセスできない場合、エラーが発生します。file_name は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。 これを使用する場合は、コマンド行の最初のオプションでなければなりません。

    このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。

  • --defaults-file=file_name

    指定されたオプションファイルのみを読み取ります。 ファイルが存在しないかアクセスできない場合、エラーが発生します。file_name は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。

    例外: --defaults-file でも、mysqldmysqld-auto.cnf を読み取ります。

    注記

    --defaults-file および --install (または --install-manual) オプションを使用してサーバーを起動する場合を除き、これはコマンド行の最初のオプションである必要があります。--install (または --install-manual) が最初に必要です。

    このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。

  • --defaults-group-suffix=str

    通常のオプショングループだけでなく、通常の名前に str のサフィクスが付いたグループも読み取ります。 たとえば、mysqld は通常 [mysqld] グループを読み取ります。 --defaults-group-suffix=_other オプションを指定した場合、mysqld[mysqld_other] グループも読み取ります。

    このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。

  • --early-plugin-load=plugin_list

    コマンド行形式 --early-plugin-load=plugin_list
    文字列
    デフォルト値 empty string

    このオプションは、必須の組み込みプラグインをロードする前、およびストレージエンジンを初期化する前に、どのプラグインをロードするかをサーバーに指示します。 複数の --early-plugin-load オプションを指定した場合は、最後のオプションのみが使用されます。

    オプション値は、name = plugin_library および plugin_library の値をセミコロンで区切ったリストです。 各 name はロードするプラグインの名前で、plugin_library はプラグインコードを含むライブラリファイルの名前です。 プラグイン名を前に付けずにプラグインライブラリを指定した場合、サーバーはライブラリ内のすべてのプラグインをロードします。 サーバーは、plugin_dir システム変数で指定されたディレクトリ内でプラグインライブラリファイルを検索します。

    たとえば、myplug1 および myplug2 という名前のプラグインに myplug1.so および myplug2.so というライブラリファイルがある場合は、このオプションを使用して初期プラグインロードを実行します:

    shell> mysqld --early-plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"

    一部のコマンドインタプリタではセミコロン (;) が特殊文字として解釈されるため、引数値の前後に引用符が使用されます。 (たとえば UNIX シェルでは、これはコマンド終端記号として扱われます。)

    指定された各プラグインは、mysqld の単一の呼出しに対してのみ早期にロードされます。 再起動後、--early-plugin-load を再度使用しないかぎり、プラグインは早期にロードされません。

    サーバーが --initialize または --initialize-insecure を使用して起動された場合、--early-plugin-load で指定されたプラグインはロードされません。

    サーバーが --help で実行されている場合、--early-plugin-load で指定されたプラグインがロードされますが、初期化されません。 この動作により、プラグインオプションがヘルプメッセージに確実に表示されます。

    デフォルトの --early-plugin-load 値は空です。 keyring_file プラグインをロードするには、空でない値で明示的な --early-plugin-load オプションを使用する必要があります。

    InnoDB のテーブルスペース暗号化機能は、暗号化キー管理のために keyring_file プラグインに依存しており、暗号化されたテーブルの InnoDB リカバリを容易にするために、ストレージエンジンを初期化する前に keyring_file プラグインをロードする必要があります。 起動時に keyring_file プラグインをロードする管理者は、適切な空でないオプション値 (Unix や Unix のようなシステムでは keyring_file.so、Windows では keyring_file.dll) を使用する必要があります。

    InnoDB テーブルスペースの暗号化の詳細は、セクション15.13「InnoDB 保存データ暗号化」 を参照してください。 プラグインのロードに関する一般情報については、セクション5.6.1「プラグインのインストールおよびアンインストール」 を参照してください。

  • --exit-info[=flags], -T [flags]

    コマンド行形式 --exit-info[=flags]
    Integer

    これは、mysqld サーバーのデバッグに使用できる様々なフラグのビットマスクです。 このオプションを使用するには、完全にこのオプションを理解していることが必要です。

  • --external-locking

    コマンド行形式 --external-locking[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    デフォルトで無効になっている外部ロック (システムロック) を有効にします。 lockd が完全には機能しないシステム (Linux など) でこのオプションを使用すると、mysqld でデッドロックが発生しやすくなります。

    外部ロックを明示的に無効にするには、--skip-external-locking を使用します。

    外部ロックは MyISAM テーブルアクセスにのみ影響します。 使用できるまたはできない状況も含めた詳細情報については、セクション8.11.5「外部ロック」を参照してください。

  • --flush

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

    各 SQL ステートメント後にすべての変更内容をディスクにフラッシュ (同期) します。 通常、MySQL では各 SQL ステートメントの終了後にのみすべての変更内容をディスクに書き込み、ディスクへの同期はオペレーティングシステムが処理します。 セクションB.3.3.3「MySQL が繰り返しクラッシュする場合の対処方法」を参照してください。

    注記

    --flush が指定されている場合、flush_time の値は関係なく、flush_time を変更してもフラッシュ動作には影響しません。

  • --gdb

    コマンド行形式 --gdb[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    SIGINT 用の割り込みハンドラ (ブレークポイントを設定するための ^C を使用して mysqld を停止するために必要) をインストールし、スタックトレースおよびコアファイルの処理を無効にします。 セクション5.9.1.4「gdb での mysqld のデバッグ」を参照してください。

    Windows では、このオプションにより、RESTART ステートメントの実装に使用される分岐も抑制されます: フォーキングを使用すると、一方のプロセスを他方のプロセスのモニターとして動作させることができます。このモニターはサーバーとして機能します。 ただし、フォークすると、デバッグのためにアタッチするサーバープロセスの決定が困難になるため、--gdb でサーバーを起動するとフォーキングが抑制されます。 このオプションで起動されたサーバーの場合、RESTART は単に終了し、再起動しません。

    デバッグ以外の設定では、--no-monitor を使用してモニタープロセスの分岐を抑制できます。

  • --initialize, -I

    コマンド行形式 --initialize[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    このオプションは、データディレクトリを作成し、mysql システムスキーマにテーブルを移入することで、MySQL インストールを初期化するために使用します。 詳細は、セクション2.10.1「データディレクトリの初期化」を参照してください。

    --initialize を使用してサーバーを起動すると、init_file システム変数で指定されたファイルで許可されるステートメントを制限する一部の機能が使用できなくなります。 詳細は、その変数の説明を参照してください。 また、disabled_storage_engines システム変数は効果がありません。

    --initialize とともに使用する場合、--ndbcluster オプションは無視されます。

    --initialize は、--daemonize と相互に排他的です。

    -I は、--initialize のシノニムです。

  • --initialize-insecure

    コマンド行形式 --initialize-insecure[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    このオプションは、データディレクトリを作成し、mysql システムスキーマにテーブルを移入することで、MySQL インストールを初期化するために使用します。 このオプションは、--initialize を意味します。 詳細は、そのオプションの説明および セクション2.10.1「データディレクトリの初期化」 を参照してください。

    --initialize-insecure は、--daemonize と相互に排他的です。

  • --innodb-xxx

    InnoDB ストレージエンジンのオプションを設定します。 InnoDB オプションは、セクション15.14「InnoDB の起動オプションおよびシステム変数」にリストされています。

  • --install [service_name]

    コマンド行形式 --install [service_name]
    プラットフォーム固有 Windows

    (Windows のみ) Windows の起動時に自動的に開始する Windows サービスとしてサーバーをインストールします。 service_name の値が指定されない場合、デフォルトサービス名は MySQL です。 詳細については、セクション2.3.4.8「Windows のサービスとして MySQL を起動する」を参照してください。

    注記

    --defaults-file オプションおよび --install オプションを使用してサーバーを起動する場合、--install を先にする必要があります。

  • --install-manual [service_name]

    コマンド行形式 --install-manual [service_name]
    プラットフォーム固有 Windows

    (Windows のみ) 手動で開始する必要がある Windows サービスとしてサーバーをインストールします。 Windows の起動中に自動的に開始されません。 service_name の値が指定されない場合、デフォルトサービス名は MySQL です。 詳細については、セクション2.3.4.8「Windows のサービスとして MySQL を起動する」を参照してください。

    注記

    --defaults-file オプションおよび --install-manual オプションを使用してサーバーを起動する場合、--install-manual を先にする必要があります。

  • --language=lang_name, -L lang_name

    コマンド行形式 --language=name
    非推奨 はい; use lc-messages-dir instead
    システム変数 language
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    ディレクトリ名
    デフォルト値 /usr/local/mysql/share/mysql/english/

    エラーメッセージに使用する言語。lang_name は、言語名として指定するか、言語ファイルがインストールされているディレクトリへのフルパス名として指定できます。 セクション10.12「エラーメッセージ言語の設定」を参照してください。

    非推奨になった (--language ではなく、--lc-messages-dir および --lc-messages を使用する必要があります。また、--lc-messages-dir のシノニムとして処理されます)。 --language オプションは、将来の MySQL リリースで削除される予定です。

  • --large-pages

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

    ハードウェアまたはオペレーティングシステムのアーキテクチャーによっては、デフォルト (通常は 4K バイト) よりも大きいメモリーページをサポートしています。 このサポートの実際の実装は、ベースとなるハードウェアやオペレーティングシステムに依存します。 大量のメモリーアクセスがあるアプリケーションの場合、大きいページを使用して、トランスレーションルックアサイドバッファー (TLB; Translation Lookaside Buffer) のミスが減ることによってパフォーマンスが改善される可能性があります。

    MySQL では、ラージページサポート (Linux では HugeTLB と呼ばれる) の Linux 実装がサポートされています。 セクション8.12.3.2「ラージページのサポートの有効化」を参照してください。 大きいページの Solaris サポートについては、--super-large-pages オプションの説明を参照してください。

    --large-pages はデフォルトで無効になっています。

  • --lc-messages=locale_name

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

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

  • --lc-messages-dir=dir_name

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

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

  • --local-service

    コマンド行形式 --local-service

    (Windows のみ) サービス名のあとに --local-service オプションが指定されると、システム権限が制限された LocalService の Windows アカウントを使用してサーバーが実行されます。 --defaults-file および --local-service の両方がサービス名のあとに指定される場合、どのような順序でもかまいません。 セクション2.3.4.8「Windows のサービスとして MySQL を起動する」を参照してください。

  • --log-error[=file_name]

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

    デフォルトのエラーログの保存先を指定されたファイルに設定します。 これは、デフォルトの宛先に基づく独自の出力先のログシンクに影響します。 セクション5.4.2「エラーログ」 を参照してください。

    オプションでファイル名が指定されていない場合、Unix および Unix に似たシステムのデフォルトのエラーログの保存先は、データディレクトリ内の host_name.err という名前のファイルです。 --pid-file オプションが指定されていないかぎり、Windows のデフォルトの宛先は同じです。 その場合、ファイル名は PID ファイルベース名に接尾辞 .err を付けたものになります。

    オプションでファイル名を指定する場合、デフォルトの宛先はそのファイル (名前に接尾辞がない場合は .err 接尾辞が追加されたもの) で、別の場所を指定する絶対パス名が指定されていないかぎり、データディレクトリの下にあります。

    エラーログ出力をエラーログファイルにリダイレクトできない場合は、エラーが発生し、起動に失敗します。

    Windows では、--console--log-error よりも優先されます (両方が指定されている場合)。 この場合、デフォルトのエラーログの保存先は、ファイルではなくコンソールです。

  • --log-isam[=file_name]

    コマンド行形式 --log-isam[=file_name]
    ファイル名

    MyISAM のすべての変更内容をこのファイルに記録します (MyISAM をデバッグするときだけ使用します)。

  • --log-raw

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

    一般クエリーログ、スロークエリーログ、およびバイナリログに書き込まれた特定のステートメント内のパスワードは、文字どおりプレーンテキストで発生しないようにサーバーによって書き換えられます。 一般クエリーログについてのパスワードの書き換えは、--log-raw オプションでサーバーを起動することによって抑制できます。 このオプションは、サーバーによって受け取られるステートメントの正確なテキストを表示する際の診断目的で役立つ場合がありますが、セキュリティー上の理由で本番用途では推奨されません。

    クエリーリライトプラグインがインストールされている場合、--log-raw オプションは次のようにステートメントのロギングに影響します:

    • --log-raw がない場合、サーバーはクエリーリライトプラグインによって返されたステートメントをログに記録します。 これは、受け取ったステートメントとは異なる場合があります。

    • --log-raw では、サーバーは元のステートメントを受信したとおりにログに記録します。

    詳細は、セクション6.1.2.3「パスワードおよびロギング」を参照してください。

  • --log-short-format

    コマンド行形式 --log-short-format[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    スロークエリーログがアクティブ化されている場合は、ログに記録される情報が少なくなります。

  • --log-tc=file_name

    コマンド行形式 --log-tc=file_name
    ファイル名
    デフォルト値 tc.log

    メモリーマップ済みのトランザクションコーディネータログファイルの名前 (バイナリログが無効のときに複数のストレージエンジンに影響する XA トランザクション用)。 デフォルト名は tc.log です。 フルパス名が指定されない場合、ファイルはデータディレクトリの下に作成されます。 このオプションは使用されません。

  • --log-tc-size=size

    コマンド行形式 --log-tc-size=#
    Integer
    デフォルト値 6 * page size
    最小値 6 * page size
    最大値 (64 ビットプラットフォーム) 18446744073709551615
    最大値 (32 ビットプラットフォーム) 4294967295

    メモリーマップ済みのトランザクションコーディネータログのバイト単位のサイズ。 デフォルト値と最小値はページサイズの 6 倍で、値はページサイズの倍数である必要があります。

  • --memlock

    コマンド行形式 --memlock[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    メモリー内の mysqld プロセスをロックします。 このオプションは、オペレーティングシステムによって mysqld がディスクへのスワップを実行するという問題がある場合に役立つことがあります。

    --memlock は、mlockall() システムコールをサポートするシステムで動作します。これには、Solaris、2.4 以上のカーネルを使用するほとんどの Linux ディストリビューション、およびその他の Unix システムが含まれます。 Linux システムの場合、mlockall() (およびこのオプション) が、システムの mman.h ファイルで定義されているかどうかを次のようにして確認することによって、これがサポートされているかどうかを識別できます。

    shell> grep mlockall /usr/include/sys/mman.h

    mlockall() がサポートされている場合、前のコマンドの出力に、次のように表示されます。

    extern int mlockall (int __flags) __THROW;
    重要

    このオプションを使用する場合、サーバーを root として実行することが必要な場合もあり、これはセキュリティー上の理由から通常はよい考えではありません。 セクション6.1.5「MySQL を通常ユーザーとして実行する方法」を参照してください。

    Linux およびおそらくその他のシステムでは、limits.conf ファイルを変更することによって、サーバーを root として実行しないで済みます。 セクション8.12.3.2「ラージページのサポートの有効化」の memlock 制限に関するメモを参照してください。

    mlockall() システムコールをサポートしていないシステムでは、このオプションを使用しないでください。使用すると、mysqld を起動しようとするとすぐに終了する可能性が高くなります。

  • --myisam-block-size=N

    コマンド行形式 --myisam-block-size=#
    Integer
    デフォルト値 1024
    最小値 1024
    最大値 16384

    MyISAM インデックスページに使用するブロックサイズ。

  • --no-defaults

    オプションファイルを読み取りません。 オプションファイルから不明のオプションを読み取ることが原因でプログラムの起動に失敗する場合、--no-defaults を使用して、オプションを読み取らないようにできます。 これを使用する場合は、コマンド行の最初のオプションでなければなりません。

    このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。

  • --no-dd-upgrade

    コマンド行形式 --no-dd-upgrade[={OFF|ON}]
    非推奨 8.0.16
    Boolean
    デフォルト値 OFF
    注記

    このオプションは、MySQL 8.0.16 では非推奨です。 データディクショナリおよびサーバーのアップグレード動作をより細かく制御できる --upgrade オプションに置き換えられています。

    MySQL サーバーの起動プロセス中にデータディクショナリテーブルが自動的にアップグレードされないようにします。 このオプションは通常、既存のインストールを新しい MySQL バージョンにインプレースアップグレードした後に MySQL サーバーを起動するときに使用されます。これにはデータディクショナリテーブル定義の変更が含まれる場合があります。

    --no-dd-upgrade が指定されていて、サーバーが予期されるバージョンのデータディクショナリがデータディクショナリ自体に格納されているバージョンと異なることを検出した場合、データディクショナリのアップグレードが禁止されていることを示すエラーで起動が失敗

    [ERROR] [MY-011091] [Server] Data dictionary upgrade prohibited by the
    command line option '--no_dd_upgrade'.
    [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

    通常の起動時に、データディクショナリテーブル定義をアップグレードする必要があるかどうかを判断するために、サーバーのデータディクショナリのバージョンがデータディクショナリに格納されているバージョンと比較されます。 アップグレードが必要でサポートされている場合、サーバーは、更新された定義を含むデータディクショナリテーブルを作成し、永続化されたメタデータを新しいテーブルにコピーし、古いテーブルを新しいテーブルに原子的に置き換え、データディクショナリを再初期化します。 アップグレードが不要な場合、データディクショナリテーブルを更新せずに起動が続行されます。

  • --no-monitor

    コマンド行形式 --no-monitor[={OFF|ON}]
    導入 8.0.12
    プラットフォーム固有 Windows
    Boolean
    デフォルト値 OFF

    (Windows のみ) このオプションは、RESTART ステートメントの実装に使用される分岐を抑制: フォーキングを使用すると、一方のプロセスを他方のプロセスのモニターとして動作させることができます。このモニターはサーバーとして機能します。 このオプションで起動されたサーバーの場合、RESTART は単に終了し、再起動しません。

    --no-monitor は、MySQL 8.0.12 より前は使用できません。 回避策として --gdb オプションを使用できます。

  • --old-style-user-limits

    コマンド行形式 --old-style-user-limits[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    古いスタイルのユーザー制限を有効にします。 (MySQL 5.0.3 以前では、アカウントリソースは、user テーブルのアカウント行単位ではなく、ユーザーが接続したホストごとに別々にカウントされていました。) セクション6.2.20「アカウントリソース制限の設定」を参照してください。

  • --performance-schema-xxx

    パフォーマンススキーマオプションを構成します。 詳細は、セクション27.14「パフォーマンススキーマコマンドオプション」を参照してください。

  • --plugin-load=plugin_list

    コマンド行形式 --plugin-load=plugin_list
    システム変数 plugin_load
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    このオプションは、指定されたプラグインを起動時にロードするようサーバーに指示します。 複数の --plugin-load オプションが指定された場合、最後のオプションのみが使用されます。 ロードする追加のプラグインは、--plugin-load-add オプションを使用して指定できます。

    オプション値は、name = plugin_library および plugin_library の値をセミコロンで区切ったリストです。 各 name はロードするプラグインの名前で、plugin_library はプラグインコードを含むライブラリファイルの名前です。 プラグイン名を前に付けずにプラグインライブラリを指定した場合、サーバーはライブラリ内のすべてのプラグインをロードします。 サーバーは、plugin_dir システム変数で指定されたディレクトリ内でプラグインライブラリファイルを検索します。

    たとえば、myplug1 および myplug2 という名前のプラグインに myplug1.so および myplug2.so というライブラリファイルがある場合は、このオプションを使用して初期プラグインロードを実行します:

    shell> mysqld --plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"

    セミコロン (;) は一部のコマンドインタプリタで特殊文字として解釈されるため、ここでは引数値の前後に引用符が使用されます。 (たとえば UNIX シェルでは、これはコマンド終端記号として扱われます。)

    各名前付きプラグインは、mysqld の単一の呼出しに対してのみロードされます。 再起動後、--plugin-load をふたたび使用しないかぎり、プラグインはロードされません。 これは INSTALL PLUGIN とは対照的で、こちらは mysql.plugins テーブルに項目を追加することで、サーバーが通常起動するたびにプラグインがロードされます。

    通常の起動シーケンスでは、サーバーは mysql.plugins システムテーブルを読み取ることによって、ロードするプラグインを決定します。 サーバーが --skip-grant-tables オプションで起動された場合、mysql.plugins テーブルに登録されているプラグインはロードされず、使用できません。--plugin-load を使用すると、--skip-grant-tables が指定されている場合でもプラグインをロードできます。--plugin-load を使用すると、実行時にロードできないプラグインを起動時にロードすることもできます。

    プラグインのロードについての追加情報は、セクション5.6.1「プラグインのインストールおよびアンインストール」を参照してください。

  • --plugin-load-add=plugin_list

    コマンド行形式 --plugin-load-add=plugin_list
    システム変数 plugin_load_add
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列

    このオプションは --plugin-load オプションを補完します。--plugin-load-add は、起動時にロードされるプラグインのセットに 1 つまたは複数のプラグインを追加します。 引数の形式は --plugin-load と同じです。--plugin-load-add は、大量のプラグインのセットを、長くて扱いにくい単一の --plugin-load 引数として指定しないようにできます。

    --plugin-load-add--plugin-load がなくても指定できますが、--plugin-load はロードするプラグインのセットをリセットするため、--plugin-load の前に出現するすべての --plugin-load-add は効果がありません。 つまり、次のオプションの場合、

    --plugin-load=x --plugin-load-add=y

    上記は次のオプションと同等です。

    --plugin-load="x;y"

    ただし、次のオプションの場合、

    --plugin-load-add=y --plugin-load=x

    上記は次のオプションと同等です。

    --plugin-load=x

    プラグインのロードについての追加情報は、セクション5.6.1「プラグインのインストールおよびアンインストール」を参照してください。

  • --plugin-xxx

    サーバープラグインに関するオプションを指定します。 たとえば、多くのストレージエンジンはプラグインとして構築でき、そのようなエンジンに対してそれらのオプションを --plugin プリフィクスで指定できます。 したがって、InnoDB--innodb-file-per-table オプションは --plugin-innodb-file-per-table として指定できます。

    有効または無効にできるブールオプションの場合、--skip プリフィクスおよびその他の代替形式もサポートされます (セクション4.2.2.4「プログラムオプション修飾子」を参照してください)。 たとえば、--skip-plugin-innodb-file-per-tableinnodb-file-per-table を無効にします。

    --plugin プリフィクスの理由として、組み込みサーバーオプションとの名前の競合がある場合に、あいまいさを排除してプラグインオプションを指定できるということがあります。 たとえば、プラグイン sql に名前を指定し mode オプションを実装するプラグインライターは、オプション名が --sql-mode となることがあり、同じ名前の組み込みオプションと競合します。 そのような場合、競合する名前への参照は、組み込みオプション側として解決されます。 あいまいさを避けるために、ユーザーはプラグインオプションを --plugin-sql-mode として指定できます。 あいまいさの問題を避けるために、プラグインオプションに --plugin プリフィクスを使用することを推奨します。

  • --port=port_num, -P port_num

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

    TCP/IP 接続を listen するときに使用するポート番号。 Unix および Unix に似たシステムでは、サーバーが root オペレーティングシステムユーザーによって起動されないかぎり、ポート番号は 1024 以上である必要があります。 このオプションを 0 に設定すると、デフォルト値が使用されます。

  • --port-open-timeout=num

    コマンド行形式 --port-open-timeout=#
    Integer
    デフォルト値 0

    一部のシステムでは、サーバーが停止すると、TCP/IP ポートがただちに利用できなくなることがあります。 その後すぐにサーバーを再起動した場合、サーバーがポートをふたたびオープンしようとして失敗することがあります。 このオプションは、TCP/IP ポートを開くことができない場合、TCP/IP ポートが開放されるまでサーバーが待機する秒数を指示します。 デフォルトでは待機しません。

  • --print-defaults

    プログラム名と、オプションファイルから受け取るすべてのオプションを出力します。 パスワード値はマスクされます。 これは、--defaults-file または --defaults-extra-file の直後に使用できることを除き、コマンドラインで最初のオプションにする必要があります。

    このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。

  • --remove [service_name]

    コマンド行形式 --remove [service_name]
    プラットフォーム固有 Windows

    (Windows のみ) MySQL Windows サービスを削除します。 service_name の値が指定されない場合、デフォルトサービス名は MySQL です。 詳細については、セクション2.3.4.8「Windows のサービスとして MySQL を起動する」を参照してください。

  • --safe-user-create

    コマンド行形式 --safe-user-create[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    このオプションが有効になっている場合、mysql.user システムテーブルまたはテーブル内のカラムに対する INSERT 権限がないかぎり、ユーザーは GRANT ステートメントを使用して新しい MySQL ユーザーを作成できません。 あるユーザーが新規ユーザーを作成する能力を持ち、そのユーザーが付与する権利を持つ権限を、新規ユーザーが持つようにするには、そのユーザーに次の権限を付与します。

    GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';

    これで、ユーザーは権限カラムを直接変更できませんが、GRANT ステートメントを使用してほかのユーザーに権限を与えることができるようになります。

  • --skip-grant-tables

    コマンド行形式 --skip-grant-tables[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    このオプションは、サーバーの起動順序に影響します:

    • --skip-grant-tables により、サーバーは mysql システムスキーマ内の付与テーブルを読み取らないため、権限システムをまったく使用せずに起動します。 これにより、すべてのユーザーがサーバーすべてのデータベースへの無制限アクセスにアクセスできるようになります。

      --skip-grant-tables を使用してサーバーを起動すると認証チェックが無効になるため、この場合、サーバーは skip_networking を有効にしてリモート接続も無効にします。

      --skip-grant-tables で起動されたサーバーが実行時に付与テーブルをロードするようにするには、次の方法で権限フラッシュ操作を実行します:

      • サーバーへの接続後に MySQL FLUSH PRIVILEGES ステートメントを発行します。

      • コマンドラインから mysqladmin flush-privileges または mysqladmin reload コマンドを実行します。

      権限のフラッシュは、起動後に他のアクションが実行された結果として暗黙的に発生する可能性もあるため、サーバーは付与テーブルの使用を開始します。 たとえば、起動シーケンス中にアップグレードを実行すると、サーバーは権限をフラッシュします。

    • --skip-grant-tables では、ログイン失敗追跡および一時アカウントロックが無効になります。これらの機能は付与テーブルに依存するためです。 セクション6.2.15「パスワード管理」を参照してください。

    • --skip-grant-tables では、データディクショナリまたは mysql システムスキーマに登録されている他の特定のオブジェクトがサーバーによってロードされません:

      • CREATE EVENT を使用してインストールされ、events データディクショナリテーブルに登録されたスケジュール済イベント。

      • INSTALL PLUGIN を使用してインストールされ、mysql.plugin システムテーブルに登録されたプラグイン。

        --skip-grant-tables を使用していてもプラグインがロードされるようにするには、--plugin-load または --plugin-load-add オプションを使用します。

      • CREATE FUNCTION を使用してインストールされ、mysql.func システムテーブルに登録されているユーザー定義関数 (UDF)。

      --skip-grant-tables は、コンポーネントの起動時にロードを抑制しません。

    • --skip-grant-tables では、disabled_storage_engines システム変数は無効になります。

  • --skip-host-cache

    コマンド行形式 --skip-host-cache

    名前と IP の解決を高速化するために内部ホストキャッシュの使用を無効にします。 キャッシュを無効にすると、サーバーはクライアントが接続するたびに DNS ルックアップを実行します。

    --skip-host-cache の使用は host_cache_size システム変数を 0 に設定することに似ていますが、host_cache_size の方が柔軟性が高く、これはサーバー起動時だけでなく実行時にもホストキャッシュのサイズを変更したり有効化または無効化したりするために使用できるためです。

    --skip-host-cache を使用してサーバーを起動しても、host_cache_size の値に対する実行時の変更は妨げられませんが、このような変更は効果がなく、host_cache_size が 0 より大きい値に設定されていてもキャッシュは再度有効になりません。

    ホストキャッシュの動作の詳細は、セクション5.1.12.3「DNS ルックアップとホストキャッシュ」 を参照してください。

  • --skip-innodb

    InnoDB ストレージエンジンを無効にします。 この場合、デフォルトのストレージエンジンは InnoDB であるため、--default-storage-engine および --default-tmp-storage-engine を使用して永続テーブルと TEMPORARY テーブルの両方のデフォルトをほかのエンジンに設定しないかぎり、サーバーは起動しません。

    InnoDB ストレージエンジンを無効にすることはできず、--skip-innodb オプションは非推奨であり、効果はありません。 これを使用すると警告が出ます。 このオプションは、将来の MySQL リリースで削除される予定です。

  • --skip-new

    コマンド行形式 --skip-new

    このオプションは、安全でない可能性のある新しい動作を無効にします (考慮する必要があります)。 これらの設定になります: delay_key_write=OFF, concurrent_insert=NEVER, automatic_sp_privileges=OFF。 また、OPTIMIZE TABLE がサポートされていないストレージエンジンの ALTER TABLE にも OPTIMIZE TABLE がマップされます。

  • --skip-show-database

    コマンド行形式 --skip-show-database
    システム変数 skip_show_database
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ

    このオプションは、SHOW DATABASES ステートメントを使用することが許可されているユーザーを制御する skip_show_database システム変数を設定します。 セクション5.1.8「サーバーシステム変数」を参照してください。

  • --skip-stack-trace

    コマンド行形式 --skip-stack-trace

    スタックトレースを書き込みません。 このオプションは、デバッガで mysqld を実行するときに役立ちます。 一部のシステムでは、コアファイルを取得するために、このオプションの使用が必要になることもあります。 セクション5.9「MySQL のデバッグ」を参照してください。

  • --slow-start-timeout=timeout

    コマンド行形式 --slow-start-timeout=#
    Integer
    デフォルト値 15000

    このオプションは、Windows サービスコントロールマネージャーのサービス開始タイムアウトを制御します。 この値は、起動時に Windows サービスを強制終了する前に、サービスコントロールマネージャーが待機する最大のミリ秒数です。 デフォルト値は 15000 (15 秒) です。 MySQL サービスの開始に時間がかかりすぎる場合、この値を増やすことが必要なこともあります。 値 0 は、タイムアウトがないことを意味します。

  • --socket=path

    コマンド行形式 --socket={file_name|pipe_name}
    システム変数 socket
    スコープ グローバル
    動的 いいえ
    SET_VAR ヒントの適用 いいえ
    文字列
    デフォルト値 (Windows) MySQL
    デフォルト値 (その他) /tmp/mysql.sock

    UNIX の場合、このオプションは、ローカル接続用の listen を行うときに使用する UNIX ソケットファイルを指定します。 デフォルト値は /tmp/mysql.sock です。 このオプションが指定された場合、別のディレクトリを指定する絶対パス名が指定されないかぎり、サーバーはデータディレクトリにファイルを作成します。 Windows の場合、このオプションは、名前付きパイプを使用する、ローカル接続用の listen を行うときに使用するパイプ名を指定します。 デフォルト値は MySQL です (大/小文字は区別されません)。

  • --sql-mode=value[,value[,value...]]

    コマンド行形式 --sql-mode=name
    システム変数 sql_mode
    スコープ グローバル、セッション
    動的 はい
    SET_VAR ヒントの適用 はい
    Set
    デフォルト値 ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
    有効な値

    ALLOW_INVALID_DATES

    ANSI_QUOTES

    ERROR_FOR_DIVISION_BY_ZERO

    HIGH_NOT_PRECEDENCE

    IGNORE_SPACE

    NO_AUTO_VALUE_ON_ZERO

    NO_BACKSLASH_ESCAPES

    NO_DIR_IN_CREATE

    NO_ENGINE_SUBSTITUTION

    NO_UNSIGNED_SUBTRACTION

    NO_ZERO_DATE

    NO_ZERO_IN_DATE

    ONLY_FULL_GROUP_BY

    PAD_CHAR_TO_FULL_LENGTH

    PIPES_AS_CONCAT

    REAL_AS_FLOAT

    STRICT_ALL_TABLES

    STRICT_TRANS_TABLES

    TIME_TRUNCATE_FRACTIONAL

    SQL モードを設定します。 セクション5.1.11「サーバー SQL モード」を参照してください。

    注記

    MySQL インストールプログラムはインストールプロセス中に SQL モードを構成することがあります。

    SQL モードがデフォルトまたは期待されているモードと異なる場合、サーバーが起動時に読み取るオプションファイル内の設定を確認してください。

  • --ssl, --skip-ssl

    コマンド行形式 --ssl[={OFF|ON}]
    無効化 skip-ssl
    Boolean
    デフォルト値 ON

    --ssl オプションは、サーバーが暗号化された接続を許可するが必要としないことを指定します。 このオプションはデフォルトで有効となっています。

    --ssl は、否定形式で --skip-ssl またはシノニム (--ssl=OFF--disable-ssl) として指定できます。 この場合、このオプションは、tls_xxx および ssl_xxx システム変数の設定に関係なく、サーバーが暗号化された接続を許可しないことを指定します。

    --ssl オプションは、サーバーの起動時に、サーバーが暗号化された接続をサポートしているかどうかにのみ有効です。 これは無視され、実行時の ALTER INSTANCE RELOAD TLS の操作には影響しません。 たとえば、--ssl=OFF を使用して、暗号化された接続を無効にしてサーバーを起動し、TLS を再構成して ALTER INSTANCE RELOAD TLS を実行し、実行時に暗号化された接続を有効にできます。

    クライアントが SSL を使用して接続できるかどうかの構成、および SSL キーと証明書の検索場所の指定の詳細は、セクション6.3.1「暗号化接続を使用するための MySQL の構成」 を参照してください。ここでは、証明書とキーファイルの自動生成および自動検出のためのサーバー機能についても説明します。 サーバー側で ssl_cert および ssl_key システム変数を設定し、クライアント側で --ssl-ca (または --ssl-capath) オプションを設定することを検討してください。

  • --standalone

    コマンド行形式 --standalone
    プラットフォーム固有 Windows

    Windows でのみ使用可能で、MySQL Server にサービスとして実行しないよう指示します。

  • --super-large-pages

    コマンド行形式 --super-large-pages[={OFF|ON}]
    プラットフォーム固有 Solaris
    Boolean
    デフォルト値 OFF

    MySQL での標準的な大規模ページの使用では、サポートされる最大サイズである 4M バイトまでの使用が試行されます。 Solaris では超大規模ページ機能により 256M バイトまでのページの使用が可能です。 この機能は最新の SPARC プラットフォームで使用できます。 これは --super-large-pages または --skip-super-large-pages オプションを使用して有効または無効にできます。

  • --symbolic-links, --skip-symbolic-links

    コマンド行形式 --symbolic-links[={OFF|ON}]
    非推奨 はい
    Boolean
    デフォルト値 OFF

    シンボリックリンクサポートを有効または無効にします。 Unix でシンボリックリンクを有効にすると、CREATE TABLE ステートメントの INDEX DIRECTORY または DATA DIRECTORY オプションを使用して、MyISAM インデックスファイルまたはデータファイルを別のディレクトリにリンクできます。 テーブルを削除したり名前変更したりすると、そのシンボリックリンクが指定するファイルも削除されたり名前が変更されたりします。 セクション8.12.2.2「Unix 上の MyISAM へのシンボリックリンクの使用」を参照してください。

    注記

    シンボリックリンクのサポートは、それを制御する --symbolic-links オプションとともに非推奨になりました。将来のバージョンの MySQL で削除される予定です。 また、このオプションはデフォルトで無効になっています。 関連する have_symlink システム変数も非推奨になりました。将来のバージョンの MySQL で削除される予定です。

    このオプションは Windows では意味がありません。

  • --sysdate-is-now

    コマンド行形式 --sysdate-is-now[={OFF|ON}]
    Boolean
    デフォルト値 OFF

    デフォルトの SYSDATE() は、この関数があるステートメントの実行が開始された時間ではなく、この関数が実行された時間を返します。 これは NOW() の動作と異なります。 このオプションにより、SYSDATE()NOW() のシノニムになります。 バイナリロギングおよびレプリケーションに対する意味については、セクション12.7「日付および時間関数」SYSDATE() および セクション5.1.8「サーバーシステム変数」SET TIMESTAMP についての説明を参照してください。

  • --tc-heuristic-recover={COMMIT|ROLLBACK}

    コマンド行形式 --tc-heuristic-recover=name
    列挙
    デフォルト値 OFF
    有効な値

    OFF

    COMMIT

    ROLLBACK

    手動ヒューリスティックリカバリで使用する決定。

    --tc-heuristic-recover オプションを指定すると、手動ヒューリスティックリカバリが成功したかどうかに関係なく、サーバーは終了します。

    2 フェーズコミットが可能なストレージエンジンが複数あるシステムでは、ROLLBACK オプションは安全ではなく、次のエラーで回復が停止します:

    [ERROR] --tc-heuristic-recover rollback
    strategy is not safe on systems with more than one 2-phase-commit-capable
    storage engine. Aborting crash recovery.
  • --transaction-isolation=level

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

    READ-UNCOMMITTED

    READ-COMMITTED

    REPEATABLE-READ

    SERIALIZABLE

    デフォルトのトランザクション分離レベルを設定します。 level 値は、READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READ、または SERIALIZABLE に設定できます。 セクション13.3.7「SET TRANSACTION ステートメント」を参照してください。

    デフォルトのトランザクション分離レベルは、SET TRANSACTION ステートメントを使用するか、transaction_isolation システム変数を設定して、実行時に設定することもできます。

  • --transaction-read-only

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

    デフォルトのトランザクションアクセスモードを設定します。 デフォルトでは読み取り専用モードが無効化されているため、モードは読み取り/書き込みです。

    実行時にデフォルトのトランザクションアクセスモードを設定するには、SET TRANSACTION ステートメントを使用するか、transaction_read_only システム変数を設定します。 セクション13.3.7「SET TRANSACTION ステートメント」を参照してください。

  • --tmpdir=dir_name, -t dir_name

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

    一時ファイルを作成するために使用するディレクトリのパス。 これは、小さすぎて一時テーブルを保持できないパーティション上にデフォルトの /tmp ディレクトリがある場合に役立つことがあります。 このオプションは、ラウンドロビン方式で使用されるいくつかのパスを受け入れます。 パスは、Unix ではコロン文字 (:) で区切り、Windows ではセミコロン文字 (;) で区切る必要があります。

    --tmpdir は、メモリーベースのファイルシステム上のディレクトリや、サーバーホストの再起動時にクリアされるディレクトリなど、非永続的な場所にすることができます。 MySQL サーバーがレプリカとして機能しており、--tmpdir に非永続的な場所を使用している場合は、slave_load_tmpdir システム変数を使用してレプリカに別の一時ディレクトリを設定することを検討してください。 レプリカの場合、LOAD DATA ステートメントのレプリケートに使用される一時ファイルはこのディレクトリに格納されるため、永続的な場所ではマシンの再起動後も存続できますが、一時ファイルが削除されている場合は、再起動後もレプリケーションを続行できるようになりました。

    一時ファイルのストレージ位置に関しては、セクションB.3.3.5「MySQL が一時ファイルを格納する場所」を参照してください。

  • --upgrade=value

    コマンド行形式 --upgrade=value
    導入 8.0.16
    列挙
    デフォルト値 AUTO
    有効な値

    AUTO

    NONE

    MINIMAL

    FORCE

    このオプションは、サーバーが起動時に自動アップグレードを実行するかどうか、およびその方法を制御します。 自動アップグレードには、次の 2 つのステップが含まれます:

    • ステップ 1: データディクショナリのアップグレード。

      このステップでは、次のアップグレードを行います:

      • mysql スキーマ内のデータディクショナリテーブル。 実際のデータディクショナリのバージョンが現在予想されているバージョンより低い場合、サーバーはデータディクショナリをアップグレードします。 実行できない場合、または実行できない場合、サーバーは実行できません。

      • パフォーマンススキーマと INFORMATION_SCHEMA

    • ステップ 2: サーバーのアップグレード。

      このステップは、他のすべてのアップグレードタスクで構成されます。 既存のインストールデータの MySQL バージョンがサーバーの予想より低い場合は、アップグレードする必要があります:

      • mysql スキーマ内のシステムテーブル (残りの非データディクショナリテーブル)。

      • sys スキーマ。

      • ユーザースキーマ。

    アップグレードステップ 1 および 2 の詳細は、セクション2.11.3「MySQL のアップグレードプロセスの内容」 を参照してください。

    次の --upgrade オプション値を使用できます:

    • AUTO

      サーバーは、最新でないことが判明したものの自動アップグレードを実行します (ステップ 1 および 2)。 これは、--upgrade が明示的に指定されていない場合のデフォルトのアクションです。

    • NONE

      サーバーは、起動プロセス中に自動アップグレードステップを実行しません (ステップ 1 および 2 はスキップします)。 このオプション値はデータディクショナリのアップグレードを妨げるため、データディクショナリが期限切れであることが判明した場合、サーバーはエラーで終了します:

      [ERROR] [MY-013381] [Server] Server shutting down because upgrade is
      required, yet prohibited by the command line option '--upgrade=NONE'.
      [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
      [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
    • MINIMAL

      サーバーは、必要に応じてデータディクショナリ、パフォーマンススキーマおよび INFORMATION_SCHEMA をアップグレードします (ステップ 1)。 このオプションを使用したアップグレード後は、レプリケーション内部が依存するシステムテーブルは更新されず、他の領域でも機能が低下する可能性があるため、Group Replication を起動できないことに注意してください。

    • FORCE

      サーバーは、必要に応じてデータディクショナリ、パフォーマンススキーマおよび INFORMATION_SCHEMA をアップグレードします (ステップ 1)。 また、サーバーは他のすべてのものを強制的にアップグレードします (ステップ 2)。 サーバーはすべてのスキーマ内のすべてのオブジェクトをチェックするため、このオプションではサーバーの起動に時間がかかります。

      FORCE は、必要ないとサーバーが判断した場合に、ステップ 2 のアクションを強制的に実行する場合に役立ちます。 たとえば、システムテーブルが欠落しているか破損して修復を強制する必要があると考えられる場合があります。

    次のテーブルは、各オプション値に対してサーバーが実行するアクションをまとめたものです。

    オプション値 サーバーはステップ 1 を実行しますか。 サーバーはステップ 2 を実行しますか。
    AUTO 必要に応じて 必要に応じて
    NONE いいえ いいえ
    MINIMAL 必要に応じて いいえ
    FORCE 必要に応じて はい
  • --user={user_name|user_id}, -u {user_name|user_id}

    コマンド行形式 --user=name
    文字列

    mysqld サーバーを、名前 user_name または数字ユーザー ID user_id を持つユーザーとして実行します。 (このコンテキストでのユーザーは、システムログインアカウントであり、付与テーブルにリストされている MySQL ユーザーではありません。)

    mysqldroot として起動する場合、このオプションは必須です。 サーバーは起動シーケンス中にそのユーザー ID を変更し、root ではなく特定のユーザーでこれを実行します。 セクション6.1.1「セキュリティーガイドライン」を参照してください。

    セキュリティーホールを回避するため、つまりユーザーが --user=root オプションを my.cnf ファイルに追加することが原因で、サーバーが root として稼働できないようにするために、mysqld で最初に指定した --user オプションだけを使用し、複数の --user オプションがあった場合に警告を生成します。 /etc/my.cnf および $MYSQL_HOME/my.cnf 内のオプションは、コマンド行のオプションより先に処理することになるため、--user オプションを /etc/my.cnf に含めた上で、root 以外の値を指定することを推奨します。 /etc/my.cnf 内のオプションがほかの --user オプションよりも先に検出されることになるので、サーバーは確実に root 以外のユーザーとして実行することになり、別の --user オプションが検出されると警告を出します。

  • --validate-config

    コマンド行形式 --validate-config[={OFF|ON}]
    導入 8.0.16
    Boolean
    デフォルト値 OFF

    サーバーの起動構成を検証します。 エラーが見つからない場合、サーバーは終了コード 0 で終了します。 エラーが見つかった場合、サーバーは診断メッセージを表示し、終了コード 1 で終了します。 警告および情報メッセージは、log_error_verbosity の値によっては表示されることもありますが、即時検証の終了や終了コード 1 は生成されません。 詳細は、セクション5.1.3「サーバー構成の検証」を参照してください。

  • --verbose, -v

    詳細なヘルプを得るには、このオプションを --help オプションと一緒に使用します。

  • --version, -V

    バージョン情報を表示して終了します。


関連キーワード:  サーバー, コマンド, 形式, 変数, 起動, 参照, セクション, plugin, 実行, mysqld