このセクションでは、デフォルトのエラーログの宛先 (コンソールまたは名前付きファイル) を構成するサーバーオプションについて説明します。 また、デフォルトの宛先に基づいて独自の出力先を構成するログシンクコンポーネントも示します。
この説明では、「console」 は標準エラー出力である stderr
を意味します。 標準エラー出力が別の出力先にリダイレクトされていないかぎり、これは端末またはコンソールウィンドウです。
サーバーは、Windows システムと Unix システムでデフォルトのエラーログの保存先を決定するオプションを多少解釈します。 ご使用のプラットフォームに適した情報を使用して宛先を構成してください。 サーバーは、デフォルトのエラーログ宛先オプションを解釈した後、デフォルトの宛先を示すように log_error
システム変数を設定します。これは、複数のログシンクコンポーネントがエラーメッセージを書き込む場所に影響します。 次の各セクションでは、これらのトピックについて説明します。
Windows では、mysqld は --log-error
、--pid-file
および --console
オプションを使用して、デフォルトのエラーログの保存先がコンソールかファイルか、およびファイルの場合はファイル名を決定します:
--console
が指定されている場合、デフォルトの宛先はコンソールです。(--console
は、両方が指定されている場合は--log-error
よりも優先され、--log-error
に関する次の項目は適用されません。)--log-error
が指定されていない場合、またはファイルに名前を付けずに指定されている場合、--pid-file
オプションが指定されていないかぎり、デフォルトの宛先はデータディレクトリ内の
という名前のファイルになります。 その場合、ファイル名は PID ファイルベース名に接尾辞host_name
.err.err
を付けたものになります。ファイルに名前を付けるために
--log-error
が指定されている場合、デフォルトの宛先はそのファイルです (名前に接尾辞がない場合は、.err
接尾辞が追加されます)。 別の場所を指定する絶対パス名が指定されていないかぎり、ファイルの場所はデータディレクトリの下にあります。
デフォルトのエラーログの保存先がコンソールの場合、サーバーは log_error
システム変数を stderr
に設定します。 それ以外の場合、デフォルトの宛先はファイルで、サーバーは log_error
をファイル名に設定します。
Unix および Unix に似たシステムでは、mysqld は --log-error
オプションを使用して、デフォルトのエラーログの保存先がコンソールかファイルか、およびファイルの場合はファイル名を決定します:
--log-error
が指定されていない場合、デフォルトの宛先はコンソールです。ファイルに名前を付けずに
--log-error
を指定した場合、デフォルトの宛先はデータディレクトリ内の
という名前のファイルになります。host_name
.errファイルに名前を付けるために
--log-error
が指定されている場合、デフォルトの宛先はそのファイルです (名前に接尾辞がない場合は、.err
接尾辞が追加されます)。 別の場所を指定する絶対パス名が指定されていないかぎり、ファイルの場所はデータディレクトリの下にあります。[mysqld]
、[server]
または[mysqld_safe]
セクションのオプションファイルに--log-error
が指定されている場合、mysqld_safe を使用してサーバーを起動するシステムでは、mysqld_safe はそのオプションを検索して使用し、mysqld に渡します。
Yum または APT パッケージのインストールでは、サーバー構成ファイルで log-error=/var/log/mysqld.log
などのオプションを使用して、/var/log
の下にエラーログファイルの場所を構成するのが一般的です。 オプションからパス名を削除すると、データディレクトリ内の
ファイルが使用されます。
host_name
.err
デフォルトのエラーログの保存先がコンソールの場合、サーバーは log_error
システム変数を stderr
に設定します。 それ以外の場合、デフォルトの宛先はファイルで、サーバーは log_error
をファイル名に設定します。
サーバーは、エラーログの宛先の構成オプションを解釈した後、デフォルトのエラーログの宛先を示すように log_error
システム変数を設定します。 ログシンクコンポーネントは、log_error
値に基づいて独自の出力先を決定するか、log_error
とは無関係に宛先を決定できます
log_error
が stderr
の場合、デフォルトのエラーログの保存先はコンソールであり、出力先をデフォルトの保存先にするログシンクもコンソールに書き込みます:
log_sink_internal
,log_sink_json
,log_sink_test
: これらのシンクはコンソールに書き込みます。 これは、複数回有効にできるlog_sink_json
などのシンクにも当てはまります。すべてのインスタンスがコンソールに書き込みます。log_sink_syseventlog
: このシンクは、log_error
の値に関係なく、システムログに書き込みます。
log_error
が stderr
でない場合、デフォルトのエラーログの保存先はファイルで、log_error
はファイル名を示します。 出力先のベースとなるログシンクは、そのファイル名に基づいてデフォルトの宛先ベース出力ファイルのネーミングを行います。 (シンクは正確にその名前を使用することも、そのようなバリアントを使用することもできます。) log_error
値が file_name
であるとします。 次に、ログシンクは次のような名前を使用します:
log_sink_internal
,log_sink_test
: これらのシンクはfile_name
に書き込みます。log_sink_json
:log_error_services
値で指定されたこのシンクの後続インスタンスは、file_name
という名前のファイルと番号付き.
接尾辞に書き込まれます:NN
.jsonfile_name
.00.jsonfile_name
.01.jsonlog_sink_syseventlog
: このシンクは、log_error
の値に関係なく、システムログに書き込みます。