mysqld サーバを立ち上げるときに、項3.3. 「プログラム・オプションの指定」 で説明しているやり方で、プログラム オプションを指定します。オプション ファイルまたはコマンド ラインでオプションを使用することが、最も一般的な方法です。作業を開始する前に、オプション ファイルなどを利用して、実行ごとにサーバが常に同じオプションを使用していることを確認してください。詳細は 項3.3.2. 「オプションファイルの使用」 を参照してください。
mysqld は [mysqld]
と
[server]
のグループからオプションを読み込みます。mysqld_safe
は
[mysqld]
、[server]
、[mysqld_safe]
、[safe_mysqld]
などのグループからオプションを読み込みます。mysql.server
は [mysqld]
と
[mysql.server]
のグループからオプションを読み込みます。
Embedded MySQL
サーバは通常、[server]
、[embedded]
、および
[
からオプションを読み込みます。ここでは、xxxxx
_SERVER]xxxxx
はこのサーバを組み込んでいるアプリケーション名です。
mysqld には、様々なコマンド オプションがあります。mysqld --help を実行すると概説を参照できます。完全なオプション一覧を参照するには、mysqld --verbose --help を実行してください。
次に、一般的なサーバ オプションについて説明します。別用途のオプションについては、別のセクションで説明します。
セキュリティに関わるオプションは、 項4.6.3. 「セキュリティ関連の mysqld オプション」 を参照してください。
SSL関連オプションは、項4.8.7.3. 「SSL コマンド オプション」 を参照してください。
バイナリ ログを制御するオプションは項4.11.4. 「バイナリ ログ」 を参照してください。
レプリケーションに関連するオプションは項5.1.3. 「レプリケーションのオプションと変数」 を参照してください。
ストレージ
エンジン固有のオプションは項13.4.1. 「MyISAM
スタートアップオプション」、項13.5.4. 「InnoDB
起動オプションとシステム変数」、項14.6.5.1. 「mysqld の MySQL Cluster 関連コマンド
オプション」
などを参照してください。
変数名をオプションに使用して、サーバのシステム変数の値を設定できます。これに関しては、このセクションで後述します。
ショート ヘルプ
メッセージを表示、終了。詳細メッセージを参照するには、--verbose
と --help
オプションを使用する。
メイン関数が xxx
というシンボル (名前)
だけのユーザ定義関数をロードでするかどうかを制御する。デフォルトはオフ
(無効)
で、少なくとも一つの追加関数を持ったユーザ定義関数だけをロードできる。つまり、不正なユーザ定義関数をロードする危険性を防ぐ設定になっている。詳細は
項25.3.4.6. 「User-Defined Function Security Precautions」 を参照のこと。
MySQL 構文ではなく、ANSI 準拠の SQL
文を使用する。SQL モードの精密制御には、
--sql-mode
オプションを使用する。詳細は
項1.8.3. 「ANSIモードでのMySQLの実行」 および
項4.2.6. 「SQL モード」 を参照のこと。
MySQLをインストールしているディレクトリへの基準パス。 パスは通常、このディレクトリに関係する。
すべてのテンポラリ セットをファイルに保存して、大きな結果セットにする。ほとんどの 「table full」 エラーがこのオプションで解決するが、メモリ内テーブルだけで足りるクエリの実行速度も遅くする。MySQL 3.23.2 以降、必要に応じて、小さいテンポラリ テーブルにメモリを使用し、大きな結果セットを自動的にディスク テーブルでの保存に切り替える。
バインドする IP アドレス。
--binlog-format={row|statement}
レプリケーションに、レコード ベースとステートメント ベースのどちらを使用するかを指定する。詳細は 項5.1.2. 「レプリケーション フォーマット」 を参照のこと。(MySQL 5.1.5 からの導入)
行ベースのバイナリ ログ イベントの最大サイズ (バイト) を指定する。イベントにグループ化する行のサイズはこの値より小さいことが望ましい。値を256 の倍数とする。デフォルトは 1024。詳細は 項5.1.2. 「レプリケーション フォーマット」 を参照のこと。(MySQL 5.1.5 からの導入)
mysql_install_db スクリプト実行時に使用するオプション。 MySQL サーバを起動せずに MySQL 権限テーブルを作成できる。
このオプションは、MySQL
のコンフィギュレーションに
--disable-grant-options
オプションを使用していた場合は使えない。詳細は
項2.9.2. 「典型的な configure オプション」 を参照のこと。
キャラクタ セットを格納しているディレクトリ。詳細は 項4.10.1. 「データおよびソート用キャラクタ セット」 を参照のこと。
--character-set-client-handshake
クライアント送信のキャラクタ
セット情報を無視しない (ようにする)
オプション。クライアント情報を無視して、サーバのデフォルトのキャラクタ
セットを使用するには、--skip-character-set-client-handshake
を使用する (MySQL が MySQL 4.0.
のように動作するようにする。)
--character-set-filesystem=
charset_name
ファイルシステムのキャラクタ
セット。character_set_filesystem
のシステム変数を設定する。(MySQL 5.1.6.
からの導入)
--character-set-server=
,
charset_name
-C
charset_name
デフォルトのキャラクタ
セットを設定するときに
charset_name
を使用する。詳細は
項4.10.1. 「データおよびソート用キャラクタ セット」
を参照のこと。このオプションを使用する場合には、非デフォルトのキャラクタ
セットを指定する。照合順序は
--collation-server
で指定する。
MySQL サーバ起動中に chroot()
のシステム
コールを使用して、mysqld の
Closed 環境でサーバを起動
(デーモンを配置)する。これは推奨セキィリティ対策。ただし、このオプションを使用すると
LOAD DATA INFILE
と SELECT
... INTO OUTFILE
に制約が加わる。
--collation-server=
collation_name
サーバのデフォルトの照合順序を設定するときに
collation_name
を指定する。詳細は
項4.10.1. 「データおよびソート用キャラクタ セット」 を参照のこと。
--log-error
を指定している場合でも、stderr
および stdout
にエラー ログ
メッセージを書き込む。Windows
のみに適用。このオプションを使用した場合、
mysqld
で、コンソール画面を閉じない
(開いたままになる)。
mysqld
が異常終了した場合に、コア
ファイルを作成する。システムによっては、mysqld_safe
(mysqld のラッパ) に
--core-file-size
の指定が必要になる。詳細は
項4.3.1. 「mysqld_safe — MySQL サーバ スタートアップ スクリプト」
を参照のこと。注意: --user
オプションも使用している場合、Solaris
などシステムではコア
ファイルを作成できない。
データ ディレクトリへのパス
--debug[=
,
debug_options
]-#
[
debug_options
]
--with-debug
でコンパイルした
MySQL
を使っている場合、このオプションを使用して
mysqld のトレース
ファイルを取得できる。debug_options
の文字列は、'd:t:o,
という並び (通常)。デフォルトは
file_name
''d:t:i:o,mysqld.trace'
。詳細は
Creating Trace Files を参照。
MySQL 5.1.12 以降、デバッグ サポートに
--with-debug
を使用して MySQL
をコンパイルすると、サーバ起動時に
--debug="d,parser_debug"
を使用できる。これは、SQL
文の処理に使用している Bison
パーサーが、サーバの標準エラー出力にパーサー
トレースをダンプすることを起因します。
--default-character-set=
(DEPRECATED)
charset_name
デフォルトのキャラクタ
セットを設定するときに、
charset_name
を使用する。このオプションは
--character-set-server
をうけて、廃止予定である。詳細は
項4.10.1. 「データおよびソート用キャラクタ セット」 を参照のこと。
--default-collation=
collation_name
デフォルトの照合順序を設定するときに
collation_name
を使用する。このオプションは
--collation-server
をうけて、廃止予定である。詳細は
項4.10.1. 「データおよびソート用キャラクタ セット」 を参照のこと。
デフォルトのストーレジ エンジン (テーブル タイプ) を設定する。詳細は 章 13. ストレージエンジンとテーブルタイプ を参照のこと。
このオプションは、--default-storage-engine
のシノニム (別名)。
サーバのデフォルト タイム
ゾーンを指定する。このオプションで、グローバル
スコープの time_zone
システム変数をセットする。このオプションを使用しない場合、デフォルトのタイム
ゾーンは、システムのタイム
ゾーンと同一になる。(system_time_zone
システム変数の値)
--delay-key-write[={OFF|ON|ALL}]
遅れたキーの書き込みをどうするかを指定する。キーの書き込みが遅れると、キー
バッファを MyISAM
テーブルへの書き込み間のフラッシュを抑制する。OFF
で遅れたキーの書き込みを無効にする。ON
は DELAY_KEY_WRITE
オプションで作成したテーブルに対して遅れたキーの書き込みを可能にする。ALL
はすべての MyISAM
テーブルに対するキー書き込みを遅らせる。詳細は
項6.5.2. 「サーバパラメータのチューニング」 および
項13.4.1. 「MyISAM
スタートアップオプション」 を参照のこと。
ノート:この変数を
ALL
にセットするときに、別のMySQL
サーバ、または myisamchk
コマンドなどテーブルが使用中の場合は、別のプログラム内から
MyISAM
デーブルを使用しないでください。インデックス破損の原因になります。
DES_ENCRYPT()
および
DES_DECRYPT()
関数で使用するデフォルトの DES キー
をこのファイルから読み取る。
名前付きパイプ (named pipe) のサポートを有効化する。これは Windows NT、2000、XP、2003 のみで使用可能。mysqld-nt または名前付きパイプの接続をサポートしているサーバで使用可能。
イベント スケジューラを無効、有効、開始、停止するオプション (MySQL 5.1.6 からの導入) 注意: 許容値とその動作に関しては MySQL 5.1.11 で変更し、MySQL 5.1.12 でも再度変更している。
詳細は
event-scheduler
オプション を参照のこと。
--exit-info[=
,
flags
]-T [
flags
]
mysqld サーバのデバッグに使用できる、複数の異なるフラグのビット マスク。このオプションを 使用するには、完全に このオプションを理解していることが必要。
外部ロック (システム ロック)
を有効にする。MySQL 4.0
のデフォルトでは無効と設定していた。注意:lockd
が完全には機能しないシステム (Linux
など)
でこのオプションを使用すると、簡単に
mysqld
がデッドロックになる。このオプションの旧称は
--enable-locking
。
ノート:MySQL
のプロセスにおいて、MyISAM
テーブルへの更新を有効にするためにこのオプションを使用する場合、次の条件を満たす必要がある。
別のプロセスで更新したテーブルを使用するクエリをキャッシュしていない。
共有テーブルで
--delay-key-write=ALL
または
DELAY_KEY_WRITE=1
を使用していない。
この条件を定かにする方法は、常に
--external-locking
を
--delay-key-write=OFF
および
--query-cache-size=0
を併用することである。(様々なステップにおいて、前述オプションを組み合わせることが有用であることから、デフォルトでは設定をしていない。)
それぞれの SQL コマンドの実行後に、ディスクへ変更のすべてをフラッシュ (同期) する。通常、MySQL はそれぞれの SQL コマンドの後に、変更だけをディクスに書き込み、ディスクへの同期処理はオペレーティング システムに任せている。詳細は 項B.1.4.2. 「What to Do If MySQL Keeps Crashing」 を参照のこと。
--log
または -l
オプションを与えた場合に、初期のログ状態を指定する。引数がない、または
0 の場合、--general-log
オプションがログを無効化する。引数を省略または
1
とした場合、ログを有効化する。--log
または -l
を指定しない場合、--general-log
の効果はない。(MySQL 5.1.12 からの導入)
サーバ起動時にこのファイルから読み込んだ SQL コマンドを実行する。それぞれのコマンドはシングル ライン (一行) で、コメントを含まないものとする。
このオプションは、MySQL
のコンフィギュレーションに
--disable-grant-options
オプションを使用している場合は使えない。詳細は
項2.9.2. 「典型的な configure オプション」 を参照のこと。
--innodb-
xxx
InnoDB
オプションは
項13.5.4. 「InnoDB
起動オプションとシステム変数」 を参照のこと。
--language=
lang_name
,
-L lang_name
クライアントのエラー
メッセージに使用する言語。lang_name
は言語名またはフルパスで指定できる
(言語情報を格納するディレクトリ)。詳細は
項4.10.2. 「英語以外のエラーメッセージ」 を参照のこと。
オペレーティング システムによっては、デフォルト (4KB) よりも大きいメモリ ページをサポートしている。サポートの実装はハードウェアやOSに依存する。大量のメモリ アクセスがあるアプリケーションの場合には、大きなメモリ ページを使用して、パフォーマンスを改善できる可能性がある。つまり トランスレーション・ルックアサイド・バッファ (TLB; Translation Lookaside Buffer) のミスが減る。
現在、MySQL は Linux 実装だけをサポートしている。Linux ではこれを HugeTLB と呼ぶ。 FreeBSD や Solaris、その他の OS でのサポートは計画中である。
Linux で大きなページを使用するには、HugeTLB
メモリ
プールを設定する必要がある。リファレンスとして、Linux
カーネル ソースの
hugetlbpage.txt
ファイルを参照のこと。
このオプションのデフォルトは無効と設定している。
--log[=
,
file_name
]-l [
file_name
]
一般クエリ ログを有効化する。一般クエリ
ログにはクライアントとの接続記録とクライアントから受信した
SQL文のエントリーをログしている。MySQL
5.1.6 から、ログ出力先は
--log-output
オプションで選択できる。MySQL 5.1.6
以前は、ログはクエリ ログ
ファイルに記録している。このファイル名を省略すると、MySQL
でファイル名に
を使用する。詳細は 項4.11.1. 「一般クエリとスロー クエリのログ出力先の選択」
および 項4.11.3. 「一般クエリ ログ」
を参照のこと。
host_name
.log
バイナリ ログを有効化する。サーバがデータを変更するクエリをすべてバイナリ ログに記録する。これは、バックアップおよびレプリケーション用に使用できる。詳細は 項4.11.4. 「バイナリ ログ」 を参照のこと。
オプション値を指定すると、それはログ順序のベース名
(basename)
になる。サーバはベース名に数値のサフィックスを与えた配列でバイナリ
ログ
ファイルを作成する。ベース名指定は推奨事項である
(項B.1.8.1. 「Open Issues in MySQL」
を参照のこと)。指定がない場合、MySQL で
をベース名として扱う。
host_name
-bin
バイナリ ログ ファイル名のインデックス
ファイルを指定する。詳細は
項4.11.4. 「バイナリ ログ」
を参照のこと。ファイル名を省略する場合に、--log-bin
で名前を指定しないときには、MySQL
で、
をファイル名として扱う。
host_name
-bin.index
--log-bin-trust-function-creators[={0|1}]
引数なし、または 1 で、このオプションは
log_bin_trust_function_creators
システム変数を 1 と設定する。引数 0
の場合は、システム変数を 0
にセットする。log_bin_trust_function_creators
はMySQL の格納関数 (stored function)
の動作に制約を与える。詳細は
項17.4. 「ストアドルーチンとトリガのバイナリログ」.
を参照のこと。
エラーと起動メッセージをファイルに記録する。詳細は
項4.11.2. 「エラー ログ」
を参照のこと。ファイル名を省略する場合、MySQL
で
を使用する。ファイル名に拡張子がない場合は、サーバで
host_name
.err.err
という拡張子を加える。
すべての MyISAM
の変更をファイルに記録する。MyISAM
をデバッグするときにだけ使用する。
--log-long-format
(DEPRECATED)
追加情報をログ
ファイルに記録する(更新ログ、バイナリ更新ログ、スロー
クエリ
ログなど、有効化しているログのすべて)。たとえば、クエリのユーザ名とタイム
スタンプを記録する。このオプションは
--log-short-format
の説明と同じ理由で、廃止となり、デフォルト設定になった。一方で、MySQL
インデックスを使用しないクエリをスロー
クエリ ログに記録するための
--log-queries-not-using-indexes
オプションが利用可能になっている。
このオプションで、一般クエリ
ログとスロー クエリ
ログの出力先を決める。オプション値は
TABLE
、FILE
、NONE
など、一つ以上の文字 (words)
で与える。このオプションに値がない場合、つまりデフォルトでは、TABLE
で、mysql
データベースのgeneral_log
および slow_log
テーブルに記録する。FILE
は、ログ
ファイルに記録する。FILE
のロギングでは、 --log
および
-slow-log
のオプションでログ
ファイルの場所を決定する。NONE
はロギングを無効にする。NONE
がオプション値にある場合は、どの文字よりも優位になる。オプションで
TABLE
および FILE
両方のログ出力先を選択できる。
ノート:
このオプションはログ出力先を選択するが、ログ出力には関与しない。ログ出力を有効にするには、--log
および --log-slow-queries
オプションを使用する。詳細は
項4.11.1. 「一般クエリとスロー クエリのログ出力先の選択」 を参照のこと。
--log-output
オプションは MySQL
5.1.6 で導入した。
--log-queries-not-using-indexes
このオプションを
--log-slow-queries
として使用する場合、インデックスを使用しないクエリはスロー
クエリ ログで記録する。詳細は
項4.11.5. 「スロー クエリ ログ」 を参照のこと。
ログ ファイル (更新ログ、バイナリ更新ログ、スロークエリログなど、有効化しているログのすべて) で記録する情報が少なくなる。たとえば、クエリのユーザ名とタイム スタンプを記録しなくなる。
OPTIMIZE TABLE
、ANALYZE
TABLE
、ALTER
TABLE
など、時間がかかる管理系 SQL
文をスロー クエリ ログに出力する。
--log-slow-queries[=
file_name
]
スロー クエリ
ログを有効化する。実行時間が
long_query_time
秒以上かかるクエリをすべてスロー ログ
ファイルとして記録する。詳細については、--log-long-format
オプションおよび
--log-short-format
オプションの説明を参照のこと。
MySQL 5.1.6 以降でのログ出力先は
--log-output
で選択できる。MySQL
5.1.6 以前の場合は、ロギングはスロー
クエリ ログ
ファイルで行なう。このファイル名を省略すると、MySQL
で
をファイル名として扱う。詳細は
項4.11.1. 「一般クエリとスロー クエリのログ出力先の選択」 および
項4.11.5. 「スロー クエリ ログ」 を参照のこと。
host_name
-slow.log
バイナリ
ログを無効にすると、複数のストレージ
エンジンに影響を与える XA
トランザクションに対する、メモリ
マップのトランザクション
コーディネータのログ
ファイルの名前。デフォルト名は
tc.log
。このファイルをフルパスで指定しない場合には、データ
ディレクトリ下での作成になる。現段階ではこのオプションは使用していない。
メモリ マップのトランザクションのコーディネータのログのバイト サイズ。デフォルト サイズは 24 KB。
--log-warnings[=
,
level
]-W [
level
]
Aborted connection...
などの警告をエラー
ログに出力する。このオプションを有効にしておく
(推奨)
と、レプリケーションを行う場合に、ネットワークの問題や再接続のメッセージに関する詳細を得ることができる。このオプションは、デフォルトで有効化
(1) していて、デフォルトの
level
値を省略する場合は、1
になる。このオプションを無効化するには、--log-warnings=0
を使用する。値を 1
より大きくすると、エラー
ログで通信エラー (Aborted connections)
を記録することになる。詳細は
項B.1.2.10. 「Communication Errors and Aborted Connections」
を参照のこと。
テーブル変更操作で、選択よりも優先順位を下げる
(INSERT
、REPLACE
、DELETE
、UPDATE
など)。 {INSERT | REPLACE | DELETE | UPDATE}
LOW_PRIORITY ...
を使用して 1
つのクエリだけ優先順位を低くしたり、SET
LOW_PRIORITY_UPDATES=1
を使用して 1
つのスレッド内での優先順位を変更することができる。詳細は
項6.3.2. 「テーブルロック関連の問題」 を参照のこと。
メモリ内の mysqld
プロセスをロックする。これは、使用しているシステムが
mlockall()
システム
コールをサポートしている場合(Solaris
など)に使用可能。たとえば、オペレーティング
システムが原因で mysqld
のスワップが発生するという問題がある場合、その解決に役立つ。注意:
このオプションを使用するには、サーバを
root
として起動することが必要になるが、これは安全ではない。詳細は
項4.6.5. 「ユーザによる MySQL の実行」
を参照のこと。.
--myisam-recover[=
option
[,option
]...]]
MyISAM
のストレージ エンジン
のリカバリ
モードをセットする。オプションは、DEFAULT
、BACKUP
、FORCE
、QUICK
の任意の組み合わせ。複数の値を指定するにはカンマで区切る。このオプションを無効にするには、これを明示的に
""
を使用する。このオプションを使用すると、mysqld
はテーブルを開く一方で、MyISAM
テーブルを開き、テーブルにクラッシュのマークが付いていないか、つまりテーブルを正しく閉じているかどうかをチェックする。(これは外部ロックを無効にした状態で稼動している場合にだけ機能する)。テーブルにクラッシュ
マークが付いていた場合、mysqld
はテーブルをチェックし、テーブルが破損していた場合は、mysqld
で修復を試みる。
次のオプションで、修復方法を決定する。
オプション | 説明 |
DEFAULT |
--myisam-recover
でどのオプションも指定しないのと同じ。 |
BACKUP |
修復時にデータ
テーブルを変更する場合、
データファイルのバックアップを
として保存する。 |
FORCE |
.MYD
ファイルから複数のレコードがなくなる場合でも修復を実行する。 |
QUICK |
削除ブロックがない場合、テーブル内のレコードをチェックしない。 |
サーバはテーブルを自動的に修復する前に、エラー
ログに修復するというノートを書き込む。BACKUP,FORCE
を使用すると、ユーザの介入をなくして、ほとんどすべての問題をリカバリできる。このやり方は、テーブルの修復を強制的に行うことになるため、レコードを若干削除してしまう可能性を伴うが、古いデータ
ファイルがバックアップとして残るので後で調べることができる。
詳細は 項13.4.1. 「MyISAM
スタートアップオプション」
を参照のこと。
--ndb-connectstring=
connect_string
NDB
ストレージ
エンジンを使用している場合、接続文字列オプションを設定して、クラスタ
コンフィギュレーションを渡しているマネージメント
サーバをポイントアウトできる。構文は
項14.4.4.2. 「クラスタの 接続文字列
」
を参照のこと。
NDB Cluster
ストレージ
エンジンへのサポートをバイナリに組み込んでいる場合、このオプションがエンジンを有効化する。デフォルト設定では無効になっている。詳細は
章 14. MySQL Cluster を参照のこと。
新たなパスワードに古いパスワード形式でのハッシュ生成を強制する。(MySQL4.0 以前のパスワードを強制する。) これは、サーバが古いクライアント プログラムをサポートする必要がある場合に有用である。詳細は 項4.7.9. 「MySQL 4.1 のパスワードハッシュ」 を参照のこと。
(Linux でのデバッグ) でスレッドを一つだけにする。サーバでのデバッグが有効化している場合にだけ使用できる。詳細は Debugging a MySQL Server を参照こと。
mysqld
で使用可能なファイル記述子の数を変更する。これが設定されていない、または
0 で設定する場合、mysqld
は、setrlimit()
で使用している値を使用してファイル記述子をリザーブする。値が
0 の場合、mysqld は
max_connections×5
または
max_connections +
table_open_cache×2
のどちらか大きい値をファイル数としてリザーブする。mysqld
で Too many open files
のエラーが出る場合、この値を大きくする。
プロセス ID (PID) ファイルのパス。mysqld_safe など、別プログラムでサーバの PID を指定するときに使用するファイルのこと。
TCP/IP
接続時に使用するポート番号を指定する。ポート番号は
1024 以上にする。サーバが
root
システム
ユーザで立ち上がっている場合はこの限りではない。
このオプションは TCP/IP ポートが開かない場合に、何秒待機するかを示す。システムによっては、サーバ停止後、すぐには TCP/IP ポートを使用できない。サーバを終了した直後に再起動すると、サーバは失敗する可能性のあるポートを再び開けようとする。デフォルト設定では待機しない、と指定している。(MySQL 5.1.5 からの導入)
いくつかの最適化ステージをスキップする。
--safe-show-database
(DEPRECATED)
詳細は 項4.7.3. 「MySQL 提供の権限」 を参照のこと。
これを有効化した場合、ユーザに
mysql.user
テーブルまたはそのテーブル内のカラムに対する
INSERT
権限がなければ、GRANT
コマンドを使用して新規ユーザを作成できなくなる。
クライアントからの古いパスワード形式 ((MySQL4.1 より前の形式)) による認証を許可しない。
ローカル クライアントとの共有メモリ接続を有効化する。 このオプションは Windows にだけ使用できる。
--shared-memory-base-name=
name
共有メモリ接続で使用する共有メモリの名前を指定します。
このオプションは Windows
にだけ使用できる。デフォルトの名前は
MYSQL
。この名前は大文字と小文字を区別する。
MyISAM
テーブルに対する SELECT
文と INSERT
文の同時実行を無効化する。このオプションは、この動作に関してバグの可能性があるときにだけ有効化する。詳細は
項6.3.3. 「同時挿入」 を参照のこと。
外部ロック (システム ロック)
を使わないようにする。外部ロックが無効化している場合に、myisamchk
を使用するときには、サーバをシャットダウンする
(項6.5.1. 「システム、コンパイル時間およびスタートアップパラメータのチューニング」
参照)。外部ロックを回避すには。
これを不要にするには、CHECK
TABLE
および REPAIR TABLE
文をチェックに使用して、MyISAM
テーブルを修正する。
MySQL 4.0 以降、外部ロックのデフォルト設定では、無効化している。
サーバが一切の権限システムを使用しないようにする。つまり、誰でも
すべてのデータベースにフルアクセスできる
ようになる。サーバ実行中に、権限テーブルの行使を再開するには、mysqladmin
flush-privileges または mysqladmin
reload をシステム
シェルから実行するか、またはサーバ接続後に
MySQL FLUSH PRIVILEGES
ステートメントを発行する。このオプションはまた、プラグインとユーザ定義関数
(UDF) のロードを抑制する。
このオプションは、MySQL
のコンフィギュレーションに
--disable-grant-options
オプションを使用している場合は使えない。詳細は
項2.9.2. 「典型的な configure オプション」 を参照のこと。
name-to-IP の解決に、ホスト名のキャッシュを使用せず、接続ごとに DNS サーバに対しクエリを発行する。詳細は 項6.5.6. 「MySQLの DNS の使用」 を参照のこと。
InnoDB
ストレージ
エンジンを無効にする。メモリとディスク領域の節約および演算処理のスピードアップに役立つ。InnoDB
テーブルを必要とする場合は、このオプションを使用しない。
(MySQLでのDNS逆引きを無効にする。)
クライアント接続のチェックに、IPアドレスからホスト名を割り出す。このオプションを使用する場合には、権限テーブルの
Host
カラム値すべてが IP
アドレスまたは localhost
であることが必要。詳細は 項6.5.6. 「MySQLの DNS の使用」
を参照のこと。
NDB Cluster
ストレージ
エンジンを無効にする。NDB
Cluster
ストレージ エンジン
サポートを投じたバイナリではデフォルトである。--ndbcluster
オプションを明示的に与えると、サーバはこのストレージ
エンジンのメモリや別リソースを配分する。使用例に関しては
項14.4.3. 「MySQL Cluster の簡単なテストの設定」
を参照のこと。
TCP ポートを一切使用しない。mysqld とのやり取りはすべて、名前付きパイプ、共有メモリ ( Windows) または Unix ソケット ファイル (Unix) を介して行う必要がある。ローカルからの接続要求のみを許可しているシステムにおいては、特にこのオプションを使用する (推奨)。詳細は 項6.5.6. 「MySQLの DNS の使用」 を参照のこと。
--ssl
で始まるオプションは、SSL経由での接続をクライアントに許可するかどうかを指定し、SSL
キーと証明書
がどこにあるかを示す。詳細は
項4.8.7.3. 「SSL コマンド オプション」 を参照のこと。
Windows NT システム専用。MySQL サーバをサービスとして起動せずにスタンドアロンで起動する。
--symbolic-links
,
--skip-symbolic-links
シンボリック リンクのサポートを有効化または無効化する。このオプションは、Windows と Unix では効果が異なる。
Windows
で有効化した場合は、
ファイルを作成してデータベース
ディレクトリにシンボリック
リンクを設置できる。このファイルには、実ディレクトリへのパスが入る。詳細は
項6.6.1.3. 「上のデータベースに対するシンボリックリンクの使用」
を参照のこと。.
db_name
.sym
Unix
で有効にした場合は、MyISAM
インデックス ファイル、またはデータ
ファイルを別のディレクトリとリンクできる。これには、CREATE
TABLE
文の INDEX
DIRECTORY
または DATA
DIRECTORY
などのオプションを使用する。詳細は
項6.6.1.2. 「Unix 上のテーブルに対するシンボリックリンクの使用」
を参照のこと。
MySQL を --with-debug=full
で設定する場合、すべてのプログラムが、メモリの割り当て時と解放時に必ずメモリのオーバーランをチェックする。このチェックには時間がかかるため、このチェックが不要のサーバに対しては、--skip-safemalloc
オプションを使用して、チェックをスキップできる。
ユーザが SHOW DATABASES
権限を持っていない場合に、SHOW
DATABASES
コマンドを無効化する。ステートメントはすべてのデータベース名を表示する。このオプションをセットしない場合、SHOW
DATABASES
はすべてのユーザが利用できるようになるが、ユーザが
SHOW DATABASES
権限、またはそのデータベースに関する何らかの権限を持っているときには、それぞれのデータベース名だけを表示する。注意:すべての
グローバル権限がデータベースに対する権限になる。
スタック トレースを書き込まないようにする。このオプションは、デバッガで mysqld を実行するときに役立つ。システムによっては、コア ファイルを取得するためにこのオプションの使用が必要な場合がある。詳細は Debugging a MySQL Server を参照のこと。
応答時間を短くするため、スレッド優先度の使用を無効化する。
--log-slow-queries
オプションで、イニシャルのログ状態を指定する。引数がない、または
0 の場合、--slow-query-log
オプションがログを無効化する。省略または
1
を引数とした場合、このオプションはログを有効化する。--log
または -l
を指定しない場合、--slow-query-log
の効果はない。(MySQL 5.1.12 での導入)
Unix
では、ローカル接続に使用するソケットファイルを指定する。デフォルトは
/tmp/mysql.sock
。Windows
では、名前付きパイプのローカル接続用パイプ名を指定する。デフォルトは
MySQL
(大小文字の区別なし)。
--sql-mode=
value
[,value
[,value
...]]
SQL モードを設定する。詳細は 項4.2.6. 「SQL モード」 を参照のこと。
デフォルトの SYSDATE()
が実行タイムを返す。これは実行を開始するステートメントのタイムではない。NOW()
の動作によって異なる。このオプションを使用すると、SYSDATE()
が NOW()
のエイリアスになる。バイナリ
ロギングやレプリケーションの実装に関しては、項11.5. 「日付時刻関数」
で SYSDATE()
用の説明と、項12.5.3. 「SET
構文」 で
SET TIMESTAMP
用の説明を参照のこと。
(MySQL 5.1.8 での追加)
--tc-heuristic-recover={COMMIT|ROLLBACK}
ヒューリスティック のリカバリ プロセスで使用する決定型 (発見的方法)。現段階では、このオプションは未使用である。
このオプションを使用すると、サーバが作成する大部分のテンポラリ ファイルに、それぞれ一意の名前ではなく、小さな名前のセットを使用する。これで、名前が異なる新規作成ファイルが多い場合に、それを Linux カーネルが処理するときの問題を回避する。Linux では、メモリがディスク キャッシュではなく、ディレクトリ エントリ キャッシュへの割り当てになるため、従来の動作ではメモリの 「リーク」 が発生しやすい。
デフォルトのトランザクション隔離レベルを指定する。level
値は、READ-UNCOMMITTED
、READ-COMMITTED
、REPEATABLE-READ
、SERIALIZABLE
などになり得る。詳細は
項12.4.6. 「SET TRANSACTION
構文」 を参照のこと。
テンポラリ
ファイル作成に使用するディレクトリのパス。テンポラリ
ファイルを保存するには小さすぎるパーティション上にデフォルトの
/tmp
ディレクトリがある場合、このオプションが役に立つ。このオプションではラウンド
ロビン方式のパスを使用できる。Unix
ではコロン(‘:
’)を、Windows、NetWare、OS/2
ではセミコロン(‘;
’)でパスを区切る。MySQL
サーバがレプリケーション
スレーブとして機能している場合は、メモリベースのファイルシステムのディレクトリや、サーバ
ホストのリブートでクリアするディレクトリを指すときには、--tmpdir
を設定しない。テンポラリ
ファイルのストレージ位置に関しては、項B.1.4.4. 「Where MySQL Stores Temporary Files」
を参照のこと。スレーブは、マシンがリブートしてもテンポラリ
テーブルのレプリケーション、または
LOAD DATA INFILE
のレプリケーション処理を続行するためにテンポラリファイルを必要とする。サーバの再起動時に、テンポラリ
ファイル
ディレクトリのファイルが消えた場合、レプリケーションは失敗に終わる。
--user={
,
user_name
|user_id
}-u
{
user_name
|user_id
}
mysqld
サーバを、user_name
(名前)、または user_id
(数字のユーザ ID)
を保持するユーザで実行する。ここでの
「ユーザ」
は、権限テーブルにリストしている MySQL
ユーザではなく、システム ログイン
アカウントのこと)。
mysqld を root
アカウントで起動する場合には、必須
のオプションである。起動シーケンス中にサーバがそのユーザ
ID を変更し、root
ではなく、特定のユーザで実行するようになる。詳細は
項4.6.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
オプションを検地すると警告を出す。
バージョン情報を表示して、終了する。
--
という配列のオプションを使用して、サーバのシステム変数に値を割り当てることができます。たとえば、var_name
=value
--key_buffer_size=32M
は key_buffer_size
の変数を 32 MB
という値に設定できます。
注意:変数として値を割り当てるときには、MySQL が自動的に範囲内に留まろうとして、値を修正する可能性があります。あるいは、特定の値を許可している場合には、許容値との近似値に調整しようとする可能性もあります。
SET
のランタイムに設定できる変数の最大値を制限する場合には、--maximum-
をコマンドラインのオプションを使用して、定義できます。
var_name
=value
または、--set-variable=
あるいは var_name
=value
-O
のシンタックスを使用して、変数を設定することも可能です。このシンタックスは廃止予定です。
var_name
=value
SET
コマンドを使用して、実行中のサーバに対して対部分のシステム変数の値を変更できます。詳細は
項12.5.3. 「SET
構文」 を参照してください。
すべての変数の詳細に加え、サーバのスタートアップやランタイムで設定する方法に関する追加情報は、項4.2.3. 「システム変数」 を参照してください。システム変数を調整したサーバの最適化に関する情報は項6.5.2. 「サーバパラメータのチューニング」 を参照してください。