このページは機械翻訳したものです。
サーバーのバイナリログは、データベースの内容に対する変更を記述する「イベント」を含むファイルで構成されます。 サーバーはこれらのファイルをバイナリ形式で書き出します。 内容をテキスト形式で表示するには、mysqlbinlog ユーティリティーを使用します。 また、mysqlbinlog を使用して、複製設定で複製サーバーによって書き込まれたリレーログファイルの内容を表示することもできます。これは、リレーログの形式がバイナリログと同じであるためです。 バイナリログおよびリレーログは、セクション5.4.4「バイナリログ」およびセクション17.2.4「リレーログおよびレプリケーションメタデータリポジトリ」でさらに説明します。
mysqlbinlog は次のように起動します。
shell> mysqlbinlog [options] log_file ...
たとえば binlog.000003
という名前のバイナリログファイルの内容を表示するには、このコマンドを使用してください。
shell> mysqlbinlog binlog.0000003
出力には、binlog.000003
に含まれるイベントが含まれます。 ステートメントベースのロギングでは、イベント情報には SQL ステートメント、それが実行されたサーバーの ID、ステートメントが実行されたタイムスタンプ、かかった時間などが含まれます。 行ベースのロギングでは、イベントは SQL ステートメントではなく行の変更を示します。 ロギングモードの詳細はセクション17.2.1「レプリケーション形式」を参照してください。
イベントには、その前に追加情報を提供するヘッダーコメントがあります。 例:
# at 141
#100309 9:28:36 server id 123 end_log_pos 245
Query thread_id=3350 exec_time=11 error_code=0
最初の行で、at
に続く数字はバイナリログファイル内でのイベントのファイルオフセット、つまり開始位置を示します。
2 行目は、イベントが発生したサーバー上でステートメントがいつ開始されたかを示す日付と時間で始まります。 レプリケーションの場合、このタイムスタンプはレプリカサーバーに伝播されます。server id
は、イベントが発生したサーバーの server_id
値です。end_log_pos
は、次のイベントの開始位置 (つまり、現在のイベントの終了位置 + 1) を示します。thread_id
は、イベントを実行したスレッドを示します。exec_time
は、レプリケーションソースサーバーでイベントの実行に費やされた時間です。 レプリカでは、レプリカの終了実行時間からソースでの開始実行時間を差し引いた時間の差です。 この違いは、ソースからどの程度遅れているレプリケーションかを示すインジケータとして機能します。error_code
は、イベントの実行結果を示します。 ゼロはエラーが発生しなかったことを意味します。
イベントグループを使用する場合は、イベントのファイルオフセットのグループ化およびイベントのコメントのグループ化ができます。 これらのグループ化イベントをブランクファイルオフセットと間違えないでください。
mysqlbinlog からの出力は、(たとえばそれを mysql への入力として使用することによって) 再実行し、ログ内のステートメントをやり直せます。 これは、予期しないサーバー終了後のリカバリ操作に役立ちます。 ほかの使用例は、このセクションのあとの方の説明およびセクション7.5「Point-in-Time (増分) リカバリ」を参照してください。 mysqlbinlog で使用される内部使用 BINLOG
ステートメントを実行するには、BINLOG_ADMIN
権限 (または非推奨の SUPER
権限) か、REPLICATION_APPLIER
権限と各ログイベントを実行するための適切な権限が必要です。
mysqlbinlog を使用してバイナリログファイルを直接読み取り、ローカル MySQL サーバーに適用できます。 --read-from-remote-server
オプションを使用して、リモートサーバーからバイナリログを読み取ることもできます。 リモートバイナリログを読み取るために、接続パラメータオプションを指定してサーバーへの接続方法を示すことができます。 これらのオプションは --host
、--password
、--port
、--protocol
、--socket
、および --user
です。
バイナリログファイルが暗号化されている場合 (MySQL 8.0.14 以降で実行可能)、mysqlbinlog はそれらを直接読み取ることはできませんが、--read-from-remote-server
オプションを使用してサーバーから読み取ることができます。 バイナリログファイルは、サーバーの binlog_encryption
システム変数が ON
に設定されている場合に暗号化されます。 SHOW BINARY LOGS
ステートメントは、特定のバイナリログファイルが暗号化されているか暗号化されていないかを示します。 暗号化されたバイナリログファイルと暗号化されていないバイナリログファイルは、暗号化されたログファイル (0xFD62696E
) のファイルヘッダーの先頭にあるマジック番号を使用して区別することもできます。これは、暗号化されていないログファイル (0xFE62696E
) に使用されるものとは異なります。 暗号化されたバイナリログファイルを直接読み取ろうとしたが、古いバージョンの mysqlbinlog がそのファイルをバイナリログファイルとして認識しない場合、MySQL 8.0.14 から適切なエラーが返されることに注意してください。 バイナリログの暗号化の詳細は、セクション17.3.2「バイナリログファイルとリレーログファイルの暗号化」 を参照してください。
バイナリログトランザクションペイロードが圧縮されている場合 (MySQL 8.0.20 以降で実行可能)、そのリリースの mysqlbinlog バージョンでは、トランザクションペイロードを自動的に解凍してデコードし、圧縮解除されたイベントと同様に出力します。 古いバージョンの mysqlbinlog では、圧縮されたトランザクションペイロードを読み取ることができません。 サーバー binlog_transaction_compression
システム変数が ON
に設定されている場合、トランザクションペイロードは圧縮され、単一のイベント (Transaction_payload_event
) としてサーバーバイナリログファイルに書き込まれます。 --verbose
オプションを使用すると、mysqlbinlog によって、使用される圧縮アルゴリズム、最初に受信された圧縮済ペイロードサイズ、および解凍後の結果のペイロードサイズを示すコメントが追加されます。
圧縮されたトランザクションペイロードの一部である個々のイベントに対して mysqlbinlog が示す終了位置 (end_log_pos
) は、元の圧縮されたペイロードの終了位置と同じです。 したがって、複数の解凍されたイベントの終了位置を同じにすることができます。
mysqlbinlog 独自の接続圧縮は、トランザクションペイロードがすでに圧縮されている場合は少なくなりますが、圧縮されていないトランザクションおよびヘッダーでは引き続き動作します。
バイナリログのトランザクション圧縮の詳細は、セクション5.4.4.5「バイナリログトランザクション圧縮」 を参照してください。
mysqlbinlog を大規模なバイナリログに対して実行する場合は、結果のファイルのためにファイルシステムに十分なスペースがあるように注意してください。 mysqlbinlog が一時ファイル用に使用するディレクトリを構成するには、TMPDIR
環境変数を使用します。
mysqlbinlog は、SQL ステートメントを実行する前に pseudo_slave_mode
の値を true に設定します。 このシステム変数は、XA トランザクションの処理、original_commit_timestamp
レプリケーション遅延タイムスタンプと original_server_version
システム変数、およびサポートされていない SQL モードに影響します。
mysqlbinlog は次のオプションをサポートします。これらはコマンド行またはオプションファイルの [mysqlbinlog]
グループおよび [client]
グループで指定できます。 MySQL プログラムによって使用されるオプションファイルの詳細については、セクション4.2.2.2「オプションファイルの使用」を参照してください。
表 4.21 「mysqlbinlog のオプション」
オプション名 | 説明 | 導入 | 非推奨 |
---|---|---|---|
--base64-output | バイナリログのエントリを base-64 エンコードで出力 | ||
--bind-address | 指定されたネットワークインタフェースを使用して MySQL サーバーに接続 | ||
--binlog-row-event-max-size | バイナリログの最大イベントサイズ | ||
--character-sets-dir | 文字セットがインストールされているディレクトリ | ||
--compress | クライアントとサーバー間で送信される情報をすべて圧縮 | 8.0.17 | 8.0.18 |
--compression-algorithms | サーバーへの接続に許可される圧縮アルゴリズム | 8.0.18 | |
--connection-server-id | テストとデバッグに使用。 適用されるデフォルト値およびその他の事項については、テキストを参照してください | ||
--database | このデータベースのみのエントリをリスト | ||
--debug | デバッグログの書込み | ||
--debug-check | プログラムの終了時にデバッグ情報を出力 | ||
--debug-info | プログラムの終了時に、デバッグ情報、メモリー、および CPU の統計を出力 | ||
--default-auth | 使用する認証プラグイン | ||
--defaults-extra-file | 通常のオプションファイルに加えて、名前付きオプションファイルを読み取ります | ||
--defaults-file | 指名されたオプションファイルのみを読み取る | ||
--defaults-group-suffix | オプショングループのサフィクス値 | ||
--disable-log-bin | バイナリロギングを無効化 | ||
--exclude-gtids | 提供された GTID セットのグループを表示しない | ||
--force-if-open | バイナリログファイルが開いているか適切にクローズしていない場合でも読み取る | ||
--force-read | mysqlbinlog が認識しないバイナリログイベントを読み取った場合、警告を出力 | ||
--get-server-public-key | サーバーから RSA 公開キーをリクエスト | ||
--help | ヘルプメッセージを表示して終了 | ||
--hexdump | コメント内にログの 16 進ダンプを表示 | ||
--host | MySQL サーバーがあるホスト | ||
--idempotent | サーバーが、このセッションからのバイナリログの更新を処理する間のみ、べき乗モードを使用 | ||
--include-gtids | 提供された GTID セットのグループのみを表示 | ||
--local-load | 指定されたディレクトリに LOAD DATA のローカル一時ファイルを準備 | ||
--login-path | ログインパスオプションを .mylogin.cnf から読み取り | ||
--no-defaults | オプションファイルを読み取らない | ||
--offset | ログの最初の N エントリをスキップ | ||
--password | サーバーに接続する際に使用するパスワード | ||
--plugin-dir | プラグインがインストールされているディレクトリ | ||
--port | 接続用の TCP/IP ポート番号 | ||
--print-defaults | デフォルトオプションの印刷 | ||
--print-table-metadata | テーブルメタデータの印刷 | ||
--protocol | 使用するトランスポートプロトコル | ||
--raw | イベントを生の (バイナリ) 形式で出力ファイルに書き込み | ||
--read-from-remote-master | バイナリログをローカルログファイルからではなく MySQL マスターから読み取り | ||
--read-from-remote-server | バイナリログをローカルログファイルからではなく MySQL サーバーから読み取り | ||
--require-row-format | 行ベースのバイナリロギング形式が必要 | 8.0.19 | |
--result-file | 指定されたファイルに出力を送信 | ||
--rewrite-db | 生ベースの形式で書き込まれたログから再現する場合の、データベースの書き換えルールを作成。 複数回使用できます | ||
--server-id | 指定されたサーバー ID を持つサーバーによって作成されたイベントのみを抽出 | ||
--server-id-bits | サーバー ID ビットが最大値未満に設定されている mysqld によってログが書き込まれた場合に、バイナリログのサーバー ID を解釈する方法を、mysqlbinlog に対して指定。MySQL Cluster バージョンの mysqlbinlog でのみサポート | ||
--server-public-key-path | RSA 公開鍵を含むファイルへのパス名 | ||
--set-charset | SET NAMES charset_name ステートメントを出力に追加 | ||
--shared-memory-base-name | 共有メモリー接続用の共有メモリー名 (Windows のみ) | ||
--short-form | ログに含まれるステートメントのみを表示 | ||
--skip-gtids | GTID を出力しない。これは、GTID を含むバイナリログからのダンプファイルを書き込む場合に使用します | ||
--socket | 使用する Unix ソケットファイルまたは Windows 名前付きパイプ | ||
--ssl-ca | 信頼できる SSL 認証局のリストを含むファイル | ||
--ssl-capath | 信頼できる SSL 認証局の証明書ファイルを含むディレクトリ | ||
--ssl-cert | X.509 証明書を含むファイル | ||
--ssl-cipher | 接続の暗号化に許可される暗号 | ||
--ssl-crl | 証明書失効リストを含むファイル | ||
--ssl-crlpath | 証明書失効リストファイルを含むディレクトリ | ||
--ssl-fips-mode | クライアント側で FIPS モードを有効にするかどうか | ||
--ssl-key | X.509 キーを含むファイル | ||
--ssl-mode | サーバーへの接続に必要なセキュリティ状態 | ||
--start-datetime | タイムスタンプが datetime 引数と同じかそれよりあとの最初のイベントからバイナリログを読み取り | ||
--start-position | 引数以上の位置を持つ最初のイベントからバイナリログをデコード | ||
--stop-datetime | タイムスタンプが datetime 引数と同じかそれより大きい最初のイベントでバイナリログの読み取りを停止 | ||
--stop-never | 最後のバイナリログファイルの読み取り後、サーバーとの接続を維持 | ||
--stop-never-slave-server-id | サーバーへの接続時にレポートするスレーブサーバー ID | ||
--stop-position | 引数以上の位置を持つ最初のイベントでバイナリログのデコードを停止 | ||
--tls-ciphersuites | 暗号化された接続に許可される TLSv1.3 暗号スイート | 8.0.16 | |
--tls-version | 暗号化された接続に許可される TLS プロトコル | ||
--to-last-log | MySQL サーバーから要求されたバイナリログの最後で停止せず、最後のバイナリログまで続けて出力 | ||
--user | サーバーへの接続時に使用する MySQL ユーザー名 | ||
--verbose | 行イベントを SQL ステートメントとして再構築 | ||
--verify-binlog-checksum | バイナリログのチェックサムを検証 | ||
--version | バージョン情報を表示して終了 | ||
--zstd-compression-level | zstd 圧縮を使用するサーバーへの接続の圧縮レベル | 8.0.18 |
-
ヘルプメッセージを表示して終了します。
-
このオプションは、イベントをいつ
BINLOG
ステートメントを使用して、base-64 文字列としてエンコードして表示するべきかを決定します。 このオプションには次の許容値があります (大/小文字は区別されません):-
AUTO
(「自動」) またはUNSPEC
(「未指定」) では、必要なときに (すなわち、形式記述イベントおよび行イベント) 自動的にBINLOG
ステートメントを表示します。--base64-output
オプションが指定されない場合は、効果は--base64-output=AUTO
と同じです。注記自動的な
BINLOG
表示は、mysqlbinlog の出力を使用してバイナリログファイルの内容を再実行する場合には、唯一の安全な動作です。 その他のオプション値はデバッグまたはテスト専用です。これらのオプションで生成される出力には、すべてのイベントが実行可能な形式で含まれるわけではないからです。 NEVER
を使用するとBINLOG
ステートメントは表示されなくなります。mysqlbinlog は、BINLOG
を使用して表示しなければならない行イベントが検出された場合にはエラーで終了します。DECODE-ROWS
は、--verbose
オプションも指定することによって、行イベントをコメント付きの SQL ステートメントとしてデコードおよび表示することをユーザーが意図していることを、mysqlbinlog に指定します。NEVER
と同様に、DECODE-ROWS
はBINLOG
ステートメントの表示を抑制しますが、NEVER
とは異なり、行イベントが検出されてもエラーで終了しません。
--base64-output
および--verbose
の行イベント出力への影響を示す例は、セクション4.6.8.2「mysqlbinlog 行イベントの表示」を参照してください。 -
-
複数のネットワークインタフェースを持つコンピュータで、このオプションを使用して、MySQL サーバーへの接続に使用するインタフェースを選択します。
-
コマンド行形式 --binlog-row-event-max-size=#
型 数値 デフォルト値 4294967040
最小値 256
最大値 18446744073709547520
行ベースのバイナリログイベントの最大サイズをバイト単位で指定します。 可能であれば、行はこのサイズより小さいイベントにグループ化されます。 値は 256 の倍数であるべきです。 デフォルトは 4G バイトです。
-
文字セットがインストールされているディレクトリ。 セクション10.15「文字セットの構成」を参照してください。
-
可能であれば、クライアントとサーバーの間で送信されるすべての情報を圧縮します。 セクション4.2.8「接続圧縮制御」を参照してください。
このオプションは MySQL 8.0.17 で追加されました。 MySQL 8.0.18 では非推奨です。 MySQL の将来のバージョンで削除されることが予想されます。 レガシー接続圧縮の構成を参照してください。
-
--compression-algorithms=
value
サーバーへの接続に許可される圧縮アルゴリズム。 使用可能なアルゴリズムは、
protocol_compression_algorithms
システム変数の場合と同じです。 デフォルト値はuncompressed
です。詳細は、セクション4.2.8「接続圧縮制御」を参照してください。
このオプションは MySQL 8.0.18 で追加されました。
-
--connection-server-id=
server_id
--connection-server-id
は、mysqlbinlog がサーバーへの接続時にレポートするサーバー ID を指定します。 これは、レプリカサーバーまたは別の mysqlbinlog プロセスの ID との競合を回避するために使用できます。--read-from-remote-server
オプションが指定されている場合、mysqlbinlog はサーバー ID 0 を報告します。これは、最後のログファイルを送信した後に切断するようにサーバーに指示します (非ブロッキング動作)。 サーバーへの接続を維持するために--stop-never
オプションも指定されている場合、mysqlbinlog はデフォルトで 0 の代わりに 1 のサーバー ID を報告し、必要に応じて--connection-server-id
を使用してそのサーバー ID を置き換えることができます。 セクション4.6.8.4「mysqlbinlog サーバー ID の指定」を参照してください。 -
--database=
,db_name
-d
db_name
このオプションを使用すると、mysqlbinlog は、
USE
によってdb_name
がデフォルトデータベースとして選択されている間に発生するバイナリログ (ローカルログのみ) からのエントリを出力するようになります。mysqlbinlog の
--database
オプションは、mysqld の--binlog-do-db
オプションと同様ですが、指定できるのは 1 つのデータベースのみです。--database
を複数回指定すると、最後のインスタンスのみが使用されます。このオプションの影響は、ステートメントベースまたは行ベースのロギング形式のどちらが使用されているかによって異なります。これは、
--binlog-do-db
の影響がステートメントベースまたは行ベースのいずれのロギングが使用されているかによって異なるのと同じです。ステートメントベースのロギング.
--database
オプションは次のように機能します。db_name
がデフォルトデータベースである間、ステートメントはdb_name
または別のデータベースのテーブルを修正する場合でも出力されます。db_name
がデフォルトデータベースとして選択されていない場合は、db_name
のテーブルを修正する場合でもステートメントは出力されません。CREATE DATABASE
、ALTER DATABASE
、およびDROP DATABASE
は例外です。 ステートメントを出力するかどうかを判断するときには、作成、変更、または削除されたデータベースがデフォルトのデータベースであるとみなされます。
これらのステートメントを実行することによって、ステートメントベースのロギングを使用してバイナリログが作成されたとします。
INSERT INTO test.t1 (i) VALUES(100); INSERT INTO db2.t2 (j) VALUES(200); USE test; INSERT INTO test.t1 (i) VALUES(101); INSERT INTO t1 (i) VALUES(102); INSERT INTO db2.t2 (j) VALUES(201); USE db2; INSERT INTO test.t1 (i) VALUES(103); INSERT INTO db2.t2 (j) VALUES(202); INSERT INTO t2 (j) VALUES(203);
デフォルトデータベースがないため、mysqlbinlog --database=test は最初の 2 つの
INSERT
ステートメントを出力しません。USE test
に続く 3 つのINSERT
ステートメントは出力しますが、USE db2
に続く 3 つのINSERT
ステートメントは出力しません。デフォルトデータベースがないため、mysqlbinlog --database=db2 は最初の 2 つの
INSERT
ステートメントを出力しません。USE test
に続く 3 つのINSERT
ステートメントは出力しませんが、USE db2
に続く 3 つのINSERT
ステートメントは出力します。行ベースのロギング. mysqlbinlog は、
db_name
に属するテーブルを変更するエントリのみを出力します。 これにはデフォルトのデータベースには影響しません。 今説明したバイナリログが、ステートメントベースのロギングではなく行ベースのロギングを使用して作成されたとします。mysqlbinlog --database=test は、USE
が発行されたか、またはデフォルトのデータベースが何かにかかわらず、テストデータベースのt1
を変更するエントリのみを出力します。サーバーが、
binlog_format
がMIXED
に設定された状態で稼働していて、mysqlbinlog を--database
オプションで使用できるようにする場合、変更されるテーブルがUSE
で選択されたデータベースであることを保証する必要があります。 (特に、クロスデータベースの更新は使用しないようにしてください。)--rewrite-db
オプションとともに使用すると、最初に--rewrite-db
オプションが適用され、リライトされたデータベース名を使用して--database
オプションが適用されます。 オプションが指定されている順序に違いはありません。 -
--debug[=
,debug_options
]-# [
debug_options
]デバッグのログを書き込みます。 一般的な
debug_options
文字列はd:t:o,
です。 デフォルトはfile_name
d:t:o,/tmp/mysqlbinlog.trace
です。このオプションは、MySQL が
WITH_DEBUG
を使用して構築された場合にのみ使用できます。 Oracle によって提供される MySQL リリースバイナリは、このオプションを使用して構築されません。 -
プログラムの終了時に、デバッグ情報を出力します。
このオプションは、MySQL が
WITH_DEBUG
を使用して構築された場合にのみ使用できます。 Oracle によって提供される MySQL リリースバイナリは、このオプションを使用して構築されません。 -
プログラムの終了時に、デバッグ情報とメモリーおよび CPU 使用率の統計を出力します。
このオプションは、MySQL が
WITH_DEBUG
を使用して構築された場合にのみ使用できます。 Oracle によって提供される MySQL リリースバイナリは、このオプションを使用して構築されません。 -
使用するクライアント側認証プラグインに関するヒント。 セクション6.2.17「プラガブル認証」を参照してください。
-
--defaults-extra-file=
file_name
このオプションファイルは、グローバルオプションファイルのあとに読み取りますが、(UNIX では) ユーザーオプションファイルの前に読み取るようにしてください。 ファイルが存在しないかアクセスできない場合、エラーが発生します。
file_name
は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
指定されたオプションファイルのみ使用します。 ファイルが存在しないかアクセスできない場合、エラーが発生します。
file_name
は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。例外:
--defaults-file
でも、クライアントプログラムは.mylogin.cnf
を読み取ります。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
通常のオプショングループだけでなく、通常の名前に
str
のサフィクスが付いたグループも読み取ります。 たとえば、mysqlbinlog は通常[client]
グループおよび[mysqlbinlog]
グループを読み取ります。--defaults-group-suffix=_other
オプションを指定した場合、mysqlbinlog は[client_other]
グループおよび[mysqlbinlog_other]
グループも読み取ります。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
バイナリロギングを無効化します。 これは、
--to-last-log
オプションを使用して同じ MySQL サーバーに対して出力を送信している場合、無限ループを回避するのに便利です。 このオプションは、ログに記録したステートメントの重複を回避するために、予期しない終了後にリストアする場合にも役立ちます。このオプションを使用すると、mysqlbinlog の出力に
SET sql_log_bin = 0
ステートメントが含まれ、残りの出力のバイナリロギングが無効になります。sql_log_bin
システム変数のセッション値の操作は制限付き操作であるため、このオプションを使用するには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。 -
gtid_set
にリストされたグループを表示しません。 -
バイナリログファイルが開いているか適切に閉じられていない場合でも読み取ります。
-
このオプションでは、mysqlbinlog が認識できないバイナリログイベントを読み取った場合に、警告を出力し、イベントを無視して続行します。 このオプションを使用しない場合は、mysqlbinlog はそのようなイベントを読み取ると停止します。
-
RSA キーペアベースのパスワード交換に必要な公開キーをサーバーにリクエストします。 このオプションは、
caching_sha2_password
認証プラグインで認証されるクライアントに適用されます。 そのプラグインの場合、サーバーは要求されないかぎり公開鍵を送信しません。 このオプションは、そのプラグインで認証されないアカウントでは無視されます。 クライアントがセキュアな接続を使用してサーバーに接続する場合と同様に、RSA ベースのパスワード交換を使用しない場合も無視されます。--server-public-key-path=
が指定され、有効な公開キーファイルが指定されている場合は、file_name
--get-server-public-key
よりも優先されます。caching_sha2_password
プラグインの詳細は、セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。 -
セクション4.6.8.1「mysqlbinlog 16 進ダンプ形式」に説明されているように、ログの 16 進ダンプをコメントに表示します。 16 進出力はレプリケーションのデバッグに便利な場合があります。
-
--host=
,host_name
-h
host_name
指定されたホストの MySQL サーバーからバイナリログを取得します。
-
更新の処理中に多重呼出し不変モードを使用するように MySQL Server に指示します。これにより、更新の処理中に現在のセッションでサーバーが検出した重複キーまたはキーが見つからないエラーが抑制されます。 このオプションは、必要に応じて、またはログが参照するすべてのデータが含まれていない可能性がある MySQL Server にバイナリログをリプレイする必要がある場合に便利です。
このオプションの効果の範囲には、現在の mysqlbinlog クライアントおよびセッションのみが含まれます。
-
gtid_set
にリストされたグループのみを表示します。 -
--local-load=
,dir_name
-l
dir_name
LOAD DATA
ステートメントに対応するデータロード操作の場合、mysqlbinlog はバイナリログイベントからファイルを抽出し、一時的なファイルとしてローカルファイルシステムに書き込み、LOAD DATA LOCAL
ステートメントを書き込んでファイルをロードします。 デフォルトでは、mysqlbinlog はこれらの一時ファイルをオペレーティングシステム固有のディレクトリに書き込みます。--local-load
オプションを使用すると、mysqlbinlog がローカル一時ファイルを準備するディレクトリを明示的に指定できます。他のプロセスはデフォルトのシステム固有のディレクトリにファイルを書き込むことができるため、mysqlbinlog に
--local-load
オプションを指定してデータファイルに別のディレクトリを指定し、mysqlbinlog からの出力を処理するときに mysql に--load-data-local-dir
オプションを指定して同じディレクトリを指定することをお薦めします。 例:mysqlbinlog --local-load=/my/local/data ... | mysql --load-data-local-dir=/my/local/data ...
重要これらの一時ファイルは、mysqlbinlog およびその他のどの MySQL プログラムによっても自動的に削除されません。
-
.mylogin.cnf
ログインパスファイルの指定されたログインパスからオプションを読み取ります。 「「ログインパス」」は、接続先の MySQL サーバーおよび認証に使用するアカウントを指定するオプションを含むオプショングループです。 ログインパスファイルを作成または変更するには、mysql_config_editor ユーティリティを使用します。 セクション4.6.7「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
オプションファイルを読み取りません。 オプションファイルから不明のオプションを読み取ることが原因でプログラムの起動に失敗する場合、
--no-defaults
を使用して、オプションを読み取らないようにできます。例外として、
.mylogin.cnf
ファイルは、存在する場合はすべての場合に読み取られます。 これにより、--no-defaults
が使用された場合にも、コマンド行よりも安全な方法でパスワードを指定できます。(.mylogin.cnf
は mysql_config_editor ユーティリティーによって作成されます。 セクション4.6.7「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください)。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
ログの最初の
N
個のエントリをスキップします。 -
予約するオープンファイルディスクリプタの数を指定します。
-
--password[=
,password
]-p[
password
]サーバーへの接続に使用される MySQL アカウントのパスワード。 パスワード値はオプションです。 指定しない場合、mysqlbinlog によってプロンプトが表示されます。 指定する場合は、
--password=
または-p
とそれに続くパスワードの間にスペースなしが存在する必要があります。 パスワードオプションを指定しない場合、デフォルトではパスワードは送信されません。コマンド行でのパスワード指定は、セキュアでないと考えるべきです。 コマンド行でパスワードを指定しないようにするには、オプションファイルを使用します。 セクション6.1.2.1「パスワードセキュリティーのためのエンドユーザーガイドライン」を参照してください。
パスワードがなく、mysqlbinlog でパスワードの入力を求められないように明示的に指定するには、
--skip-password
オプションを使用します。 -
プラグインを検索するディレクトリ。 このオプションは、
--default-auth
オプションを使用して認証プラグインを指定しても、mysqlbinlog がそれを検出しない場合に指定します。 セクション6.2.17「プラガブル認証」を参照してください。 -
リモートサーバーへの接続に使用する TCP/IP ポート番号。
-
プログラム名と、オプションファイルから受け取るすべてのオプションを出力します。
このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
バイナリログからテーブル関連のメタデータを出力します。
binlog-row-metadata
を使用して、ログに記録されるテーブル関連のメタデータバイナリの量を構成します。 -
--protocol={TCP|SOCKET|PIPE|MEMORY}
サーバーへの接続に使用するトランスポートプロトコル。 これは、他の接続パラメータが通常、必要なプロトコル以外のプロトコルを使用する場合に便利です。 許可される値の詳細は、セクション4.2.7「接続トランスポートプロトコル」を参照してください。
-
デフォルトでは、mysqlbinlog はバイナリログファイルを読み取り、イベントをテキスト形式で書き出します。
--raw
オプションは mysqlbinlog に対して、元のバイナリ形式で書き出すことを指示します。 ファイルはサーバーから要求されるため、これを使用するには、--read-from-remote-server
も使用する必要があります。mysqlbinlog はサーバーから読み取った各ファイルに対して 1 つの出力ファイルを書き出します。--raw
オプションは、サーバーのバイナリログのバックアップを作成するために使用できます。--stop-never
オプションを使用すると、mysqlbinlog はサーバーに接続されたままになるため、バックアップは「ライブ」です。 デフォルトでは、出力ファイルは現在のディレクトリに元のログファイルと同じ名前で書き出されます。 出力ファイル名は--result-file
オプションを使用して変更できます。 詳細は、セクション4.6.8.3「バイナリログファイルのバックアップのための mysqlbinlog の使用」を参照してください。 -
--read-from-remote-master=
type
COM_BINLOG_DUMP
コマンドまたはCOM_BINLOG_DUMP_GTID
コマンドで、オプション値をそれぞれBINLOG-DUMP-NON-GTIDS
またはBINLOG-DUMP-GTIDS
に設定して、MySQL サーバーからバイナリログを読み取ります。--read-from-remote-master=BINLOG-DUMP-GTIDS
が--exclude-gtids
と組み合されている場合、不要なネットワークトラフィックを回避するために、ソースでトランザクションをフィルタで除外できます。接続パラメータオプションは、このオプションまたは
--read-from-remote-server
オプションとともに使用します。 これらのオプションは--host
、--password
、--port
、--protocol
、--socket
、および--user
です。 どちらのリモートオプションも指定しない場合、接続パラメータオプションは無視されます。このオプションを使用するには、
REPLICATION SLAVE
権限が必要です。 -
バイナリログをローカルログファイルからではなく MySQL サーバーから読み取ります。 このオプションでは、リモートサーバーが稼働していることが必要です。 リモートサーバー上のバイナリログファイルに対してのみ機能します。リレーログファイルには機能しません。
接続パラメータオプションは、このオプションまたは
--read-from-remote-master
オプションとともに使用します。 これらのオプションは--host
、--password
、--port
、--protocol
、--socket
、および--user
です。 どちらのリモートオプションも指定しない場合、接続パラメータオプションは無視されます。このオプションを使用するには、
REPLICATION SLAVE
権限が必要です。このオプションは、
--read-from-remote-master=BINLOG-DUMP-NON-GTIDS
に似ています。 -
--raw
オプションがない場合は、このオプションは mysqlbinlog がテキスト出力を書き出すファイルを示します。--raw
がある場合は、mysqlbinlog はサーバーから転送される各ログファイルに対して 1 つのバイナリ出力ファイルを、デフォルトでは現在のディレクトリに元のログファイルと同じ名前で書き出します。 この場合、--result-file
オプションの値は出力ファイル名を変更するプリフィクスとして処理されます。 -
イベントの行ベースのバイナリロギング形式が必要です。 このオプションは、mysqlbinlog 出力に行ベースのレプリケーションイベントを強制します。 このオプションを使用して生成されたイベントのストリームは、(MySQL 8.0.23 の)
CHANGE REPLICATION SOURCE TO
ステートメントまたはCHANGE MASTER TO
ステートメント (MySQL 8.0.23 の前) のREQUIRE_ROW_FORMAT
オプションを使用して保護されたレプリケーションチャネルによって受け入れられます。binlog_format=ROW
は、バイナリログが書き込まれたサーバーに設定する必要があります。 このオプションを指定すると、LOAD DATA INFILE
命令、一時テーブルの作成または削除、INTVAR
、RAND
またはUSER_VAR
イベント、DML トランザクション内の行ベース以外のイベントなど、REQUIRE_ROW_FORMAT
制限の下で許可されていないイベントが発生した場合、mysqlbinlog はエラーメッセージで停止します。また、mysqlbinlog は、制限を適用するためその出力の開始時に、出力が実行されたがSET @@session.pseudo_thread_id
ステートメントがプリントされない場合、SET @@session.require_row_format
ステートメントをプリントします。このオプションは MySQL 8.0.19 で追加されました。
-
--rewrite-db='
from_name
->to_name
'行ベースまたはステートメントベースのログから読み取る場合は、すべての
from_name
をto_name
にリライトします。 リライトは、ステートメントベースのログの行、行ベースのログおよびUSE
句に対して実行されます。警告このオプションを使用する場合、テーブル名がデータベース名で修飾されているステートメントは、新しい名前を使用するようにリライトされません。
このオプションの値として使用されるリライトルールは、前述のように
'
という形式の文字列であり、このため引用符で囲む必要があります。from_name
->to_name
'複数のリライトルールを使用するには、次に示すように、オプションを複数回指定します:
shell> mysqlbinlog --rewrite-db='dbcurrent->dbold' --rewrite-db='dbtest->dbcurrent' \ binlog.00001 > /tmp/statements.sql
--database
オプションとともに使用すると、最初に--rewrite-db
オプションが適用され、リライトされたデータベース名を使用して--database
オプションが適用されます。 オプションが指定されている順序に違いはありません。これは、たとえば、mysqlbinlog が
--rewrite-db='mydb->yourdb' --database=yourdb
で起動された場合、データベースmydb
およびyourdb
内のテーブルに対するすべての更新が出力に含まれることを意味します。 一方、--rewrite-db='mydb->yourdb' --database=mydb
で起動された場合、mysqlbinlog はステートメントをまったく出力しません:mydb
へのすべての更新は、--database
オプションを適用する前にyourdb
への更新として最初にリライトされるため、--database=mydb
に一致する更新は残っていません。 -
指定されたサーバー ID を持つサーバーによって作成されたイベントのみを表示します。
-
サーバーを特定するために、
server_id
の最初のN
ビットのみを使用します。 server-id-bits が 32 未満にセットされ、ユーザーデータが最上位ビットに保存される mysqld によってバイナリログが書き出された場合、--server-id-bits
を 32 にセットして mysqlbinlog を実行するとこのデータを表示できます。このオプションは、NDB Cluster ディストリビューションで提供される mysqlbinlog のバージョン、または NDB Cluster サポートで構築されたバージョンでのみサポートされます。
-
--server-public-key-path=
file_name
RSA キーペアベースのパスワード交換のためにサーバーが必要とする公開キーのクライアント側コピーを含む、PEM 形式のファイルへのパス名。 このオプションは、
sha256_password
またはcaching_sha2_password
認証プラグインで認証されるクライアントに適用されます。 これらのプラグインのいずれかで認証されないアカウントでは、このオプションは無視されます。 クライアントがセキュアな接続を使用してサーバーに接続する場合と同様に、RSA ベースのパスワード交換を使用しない場合も無視されます。--server-public-key-path=
が指定され、有効な公開キーファイルが指定されている場合は、file_name
--get-server-public-key
よりも優先されます。sha256_password
の場合、このオプションは、MySQL が OpenSSL を使用して構築された場合にのみ適用されます。sha256_password
およびcaching_sha2_password
プラグインの詳細は、セクション6.4.1.3「SHA-256 プラガブル認証」 および セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。 -
SET NAMES
ステートメントを出力に追加して、ログファイルの処理に使用される文字セットを指定します。charset_name
-
--shared-memory-base-name=
name
Windows の場合、共有メモリを使用してローカルサーバに接続するために使用する共有メモリ名。 デフォルト値は
MYSQL
です。 共有メモリー名では大文字と小文字が区別されます。このオプションは、共有メモリー接続をサポートするために
shared_memory
システム変数を有効にしてサーバーを起動した場合にのみ適用されます。 -
追加情報および行ベースのイベントなしで、ログに含まれるステートメントのみを表示します。 これはテスト専用で、本番環境のシステムで使用するべきではありません。 これは非推奨であり、将来のリリースで削除される予定です。
-
出力に GTID を表示しません。 これは、次の例に示すように GTID を含む 1 つまたは複数のバイナリログからダンプファイルに書き出す場合に必要です。
shell> mysqlbinlog --skip-gtids binlog.000001 > /tmp/dump.sql shell> mysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sql shell> mysql -u root -p -e "source /tmp/dump.sql"
そうでない場合には、このオプションを本番環境で使用することは、通常推奨されません。
-
localhost
への接続用に使用する、Unix ソケットファイル、または Windows では使用する名前付きパイプの名前。Windows では、このオプションは、名前付きパイプ接続をサポートするために
named_pipe
システム変数を有効にしてサーバーを起動した場合にのみ適用されます。 また、接続を行うユーザーは、named_pipe_full_access_group
システム変数で指定された Windows グループのメンバーである必要があります。 -
--ssl
で始まるオプションは、SSL を使用してサーバーに接続するかどうかを指定し、SSL 鍵および証明書を検索する場所を指定します。 暗号化接続のコマンドオプションを参照してください。 -
--ssl-fips-mode={OFF|ON|STRICT}
クライアント側で FIPS モードを有効にするかどうかを制御します。
--ssl-fips-mode
オプションは、暗号化された接続の確立には使用されず、許可する暗号化操作に影響する点で、他の--ssl-
オプションとは異なります。 セクション6.8「FIPS のサポート」を参照してください。xxx
次の
--ssl-fips-mode
値を使用できます:OFF
: FIPS モードを無効にします。ON
: FIPS モードを有効にします。STRICT
: 「strict」 FIPS モードを有効にします。
注記OpenSSL FIPS オブジェクトモジュールが使用できない場合、
--ssl-fips-mode
に許可される値はOFF
のみです。 この場合、--ssl-fips-mode
をON
またはSTRICT
に設定すると、クライアントは起動時に警告を生成し、FIPS 以外のモードで動作します。 -
datetime
引数と同じかそれより遅いタイムスタンプを持つ最初のイベントから、バイナリログの読み取りを始めます。datetime
値は、mysqlbinlog を実行するマシンのローカルタイムゾーンに相対的です。 値はDATETIME
またはTIMESTAMP
データ型に受け付けられる形式にしてください。 例:shell> mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000003
このオプションはポイントインタイムリカバリに便利です。 セクション7.5「Point-in-Time (増分) リカバリ」を参照してください。
-
ログ位置
N
でバイナリログのデコードを開始します。出力には、位置N
以降で開始するイベントも含まれます。 位置はログファイル内のバイトポイントであり、イベントカウンタではありません。有用な出力を生成するには、イベントの開始位置を指す必要があります。 このオプションはコマンド行で最初に指名されたログファイルに適用されます。このオプションはポイントインタイムリカバリに便利です。 セクション7.5「Point-in-Time (増分) リカバリ」を参照してください。
-
datetime
引数と同じかそれより遅いタイムスタンプを持つ最初のイベントで、バイナリログの読み取りを終了します。datetime
値の詳細については、--start-datetime
オプションの説明を参照してください。このオプションはポイントインタイムリカバリに便利です。 セクション7.5「Point-in-Time (増分) リカバリ」を参照してください。
-
このオプションは
--read-from-remote-server
とともに使用されます。 mysqlbinlog に対して、サーバーに接続したままの状態を保つことを指示します。 そうしないと、mysqlbinlog は最後のログファイルがサーバーから転送された時点で終了します。--stop-never
は暗黙的に--to-last-log
を指定するため、コマンド行で指名する必要があるのは転送される最初のログファイルのみです。--stop-never
は一般的に、ライブバイナリログバックアップを作成するために--raw
とともに使用されますが、--raw
なしで使用して、サーバーがログイベントを生成するに従ってそれらを継続的にテキスト表示することも可能です。--stop-never
では、デフォルトで、mysqlbinlog はサーバーへの接続時にサーバー ID 1 を報告します。--connection-server-id
を使用して、レポートする代替 ID を明示的に指定します。 これは、レプリカサーバーまたは別の mysqlbinlog プロセスの ID との競合を回避するために使用できます。 セクション4.6.8.4「mysqlbinlog サーバー ID の指定」を参照してください。 -
--stop-never-slave-server-id=
id
このオプションは非推奨です。将来のリリースで削除される予定です。 かわりに
--connection-server-id
オプションを使用して、レポートする mysqlbinlog のサーバー ID を指定します。 -
ログ位置
N
以降で開始するイベントを出力から除外して、ログ位置N
でバイナリログのデコードを停止します。 位置はログファイル内のバイトポイントであり、イベントカウンタではありません。出力に含める最後のイベントの開始位置の後の位置を指す必要があります。 位置N
の前に開始し、位置以降に終了するイベントが、最後に処理されるイベントです。 このオプションは、コマンド行で最後に指名されたログファイルに適用されます。このオプションはポイントインタイムリカバリに便利です。 セクション7.5「Point-in-Time (増分) リカバリ」を参照してください。
-
--tls-ciphersuites=
ciphersuite_list
TLSv1.3 を使用する暗号化された接続に許可される暗号スイート。 値は、コロンで区切られた 1 つ以上の暗号スイート名のリストです。 このオプションに指定できる暗号スイートは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。
このオプションは MySQL 8.0.16 で追加されました。
-
暗号化された接続に許可される TLS プロトコル。 値は、1 つまたは複数のコンマ区切りプロトコル名のリストです。 このオプションに指定できるプロトコルは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。
-
MySQL サーバーから要求されたバイナリログの最後で終了せず、最後のバイナリログの最後まで続けて出力します。 同じ MySQL サーバーに出力を送信した場合、無限ループになる場合があります。 このオプションには
--read-from-remote-server
が必要です。 -
--user=
,user_name
-u
user_name
リモートサーバーへの接続時に使用する MySQL アカウントのユーザー名。
-
行イベントを再構築し、該当する場合はテーブルパーティション情報とともにコメント付き SQL ステートメントとして表示します。 このオプションを (\"-vv \"または\"--verbose --verbose\"のいずれかを渡して) 2 回指定すると、出力には、カラムのデータ型と一部のメタデータを示すコメント、および
binlog_rows_query_log_events
システム変数がTRUE
に設定されている場合の行クエリーログイベントなどの情報ログイベントが含まれます。--base64-output
および--verbose
の行イベント出力への影響を示す例は、セクション4.6.8.2「mysqlbinlog 行イベントの表示」を参照してください。 -
バイナリログファイルのチェックサムを検証します。
-
バージョン情報を表示して終了します。
このオプションを使用するときに表示される mysqlbinlog のバージョン番号は、3.4 です。
-
--zstd-compression-level=
level
zstd
圧縮アルゴリズムを使用するサーバーへの接続に使用する圧縮レベル。 許可されるレベルは 1 から 22 で、大きい値は圧縮レベルの増加を示します。 デフォルトのzstd
圧縮レベルは 3 です。 圧縮レベルの設定は、zstd
圧縮を使用しない接続には影響しません。詳細は、セクション4.2.8「接続圧縮制御」を参照してください。
このオプションは MySQL 8.0.18 で追加されました。
mysqlbinlog の出力を mysql クライアントにパイプして、バイナリログに含まれるイベントを実行できます。 この方法は、古いバックアップがある場合に予期しない終了からリカバリするために使用されます (セクション7.5「Point-in-Time (増分) リカバリ」 を参照)。 例:
shell> mysqlbinlog binlog.000001 | mysql -u root -p
または:
shell> mysqlbinlog binlog.[0-9]* | mysql -u root -p
mysqlbinlog が生成したステートメントに BLOB
値が含まれる可能性がある場合、mysql がそれらを処理するときに問題が生じることがあります。 この場合は、mysql を --binary-mode
オプションで起動します。
ステートメントログをまず変更する必要がある場合 (たとえば、何らかの理由で実行しないステートメントを削除するなど) は、代わりに mysqlbinlog の出力をテキストファイルにリダイレクトすることもできます。 ファイルの編集後、mysql プログラムへの入力として使用することによって、そこに含まれるステートメントを実行します。
shell> mysqlbinlog binlog.000001 > tmpfile
shell> ... edit tmpfile ...
shell> mysql -u root -p < tmpfile
mysqlbinlog は、--start-position
オプションで起動された場合、バイナリログ内のオフセットが指定された位置以上のイベントのみを表示します (指定された位置は 1 つのイベントの開始位置に一致していなければなりません)。 指定された日付と時間を持つイベントを検出したときに停止および起動するオプションもあります。 これにより、--stop-datetime
オプションを使用してポイントインタイムリカバリが実行できます (たとえば、「データベースを今日の 10:30 am 現在の状態までロールバックする」といったことが可能になります)。
複数のファイルの処理. MySQL サーバーに実行する複数のバイナリログがある場合、安全な方法は、サーバーへの 1 つの接続を使用して、それらすべてを処理することです。 これは、安全でない可能性があることを示す例です。
shell> mysqlbinlog binlog.000001 | mysql -u root -p # DANGER!!
shell> mysqlbinlog binlog.000002 | mysql -u root -p # DANGER!!
サーバーに対してこのように複数の接続を使用してバイナリログを処理する場合、最初のログファイルに CREATE TEMPORARY TABLE
ステートメントが含まれており、2 番目のログには一時テーブルを使用するステートメントが含まれていると、問題が発生します。 最初の mysql プロセスが終了すると、サーバーは一時テーブルを削除します。 2 番目の mysql プロセスでテーブルの使用を試みると、サーバーは「不明なテーブル」と報告します。
このような問題を回避するには、1 つの mysql プロセスを使用して、処理するすべてのバイナリログの内容を実行します。 これはそれを実行する 1 つの方法です。
shell> mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p
もう 1 つのアプローチは、すべてのログを 1 つのファイルに書き込み、次にそのファイルを処理することです。
shell> mysqlbinlog binlog.000001 > /tmp/statements.sql
shell> mysqlbinlog binlog.000002 >> /tmp/statements.sql
shell> mysql -u root -p -e "source /tmp/statements.sql"
MySQL 8.0.12 から、シェルパイプを使用して、ストリーム入力として複数のバイナリログファイルを mysqlbinlog に提供することもできます。 圧縮バイナリログファイルのアーカイブは、解凍して mysqlbinlog に直接提供できます。 この例では、binlog-files_1.gz
に処理用の複数のバイナリログファイルが含まれています。 パイプラインは、binlog-files_1.gz
の内容を抽出し、バイナリログファイルを標準入力として mysqlbinlog にパイプし、mysqlbinlog の出力を mysql クライアントにパイプして実行します:
shell> gzip -cd binlog-files_1.gz | ./mysqlbinlog - | ./mysql -uroot -p
複数のアーカイブファイルを指定できます。次に例を示します:
shell> gzip -cd binlog-files_1.gz binlog-files_2.gz | ./mysqlbinlog - | ./mysql -uroot -p
ストリーム入力の場合、mysqlbinlog はこのオプションを適用する最後のログファイルを識別できないため、--stop-position
を使用しないでください。
LOAD DATA 操作.
mysqlbinlog では、元のデータファイルを使用せずに LOAD DATA
操作を再現する出力を生成できます。mysqlbinlog はデータを一時ファイルにコピーし、そのファイルを参照する LOAD DATA LOCAL
ステートメントを書き込みます。 これらのファイルが書き出されるディレクトリのデフォルトの場所はシステムごとに異なります。 ディレクトリを明示的に指定するには、--local-load
オプションを使用します。
mysqlbinlog は LOAD DATA
ステートメントを LOAD DATA LOCAL
ステートメントに変換する (つまり、LOCAL
を追加する) ため、ステートメントの処理に使用するクライアントとサーバーの両方で LOCAL
機能を有効にして構成する必要があります。 セクション6.1.6「LOAD DATA LOCAL のセキュリティー上の考慮事項」を参照してください。
LOAD DATA LOCAL
ステートメント用に作成された一時ファイルは、これらのステートメントをユーザーが実際に実行するまで必要なため、自動的には削除されません。 ステートメントログが必要なくなった時点で、ユーザーが一時ファイルを削除するようにしてください。 これらのファイルは一時ファイルディレクトリに存在し、original_file_name-#-#
といった名前が付いています。