Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


MySQL 8.0 リファレンスマニュアル  /  ...  /  mysqlbinlog — バイナリログファイルを処理するためのユーティリティー

このページは機械翻訳したものです。

4.6.8 mysqlbinlog — バイナリログファイルを処理するためのユーティリティー

サーバーのバイナリログは、データベースの内容に対する変更を記述するイベントを含むファイルで構成されます。 サーバーはこれらのファイルをバイナリ形式で書き出します。 内容をテキスト形式で表示するには、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

  • --help, -?

    ヘルプメッセージを表示して終了します。

  • --base64-output=value

    このオプションは、イベントをいつ BINLOG ステートメントを使用して、base-64 文字列としてエンコードして表示するべきかを決定します。 このオプションには次の許容値があります (大/小文字は区別されません):

    • AUTO (「自動」) または UNSPEC (「未指定」) では、必要なときに (すなわち、形式記述イベントおよび行イベント) 自動的に BINLOG ステートメントを表示します。 --base64-output オプションが指定されない場合は、効果は --base64-output=AUTO と同じです。

      注記

      自動的な BINLOG 表示は、mysqlbinlog の出力を使用してバイナリログファイルの内容を再実行する場合には、唯一の安全な動作です。 その他のオプション値はデバッグまたはテスト専用です。これらのオプションで生成される出力には、すべてのイベントが実行可能な形式で含まれるわけではないからです。

    • NEVER を使用すると BINLOG ステートメントは表示されなくなります。mysqlbinlog は、BINLOG を使用して表示しなければならない行イベントが検出された場合にはエラーで終了します。

    • DECODE-ROWS は、--verbose オプションも指定することによって、行イベントをコメント付きの SQL ステートメントとしてデコードおよび表示することをユーザーが意図していることを、mysqlbinlog に指定します。 NEVER と同様に、DECODE-ROWSBINLOG ステートメントの表示を抑制しますが、NEVER とは異なり、行イベントが検出されてもエラーで終了しません。

    --base64-output および --verbose の行イベント出力への影響を示す例は、セクション4.6.8.2「mysqlbinlog 行イベントの表示」を参照してください。

  • --bind-address=ip_address

    複数のネットワークインタフェースを持つコンピュータで、このオプションを使用して、MySQL サーバーへの接続に使用するインタフェースを選択します。

  • --binlog-row-event-max-size=N

    コマンド行形式 --binlog-row-event-max-size=#
    数値
    デフォルト値 4294967040
    最小値 256
    最大値 18446744073709547520

    行ベースのバイナリログイベントの最大サイズをバイト単位で指定します。 可能であれば、行はこのサイズより小さいイベントにグループ化されます。 値は 256 の倍数であるべきです。 デフォルトは 4G バイトです。

  • --character-sets-dir=dir_name

    文字セットがインストールされているディレクトリ。 セクション10.15「文字セットの構成」を参照してください。

  • --compress

    可能であれば、クライアントとサーバーの間で送信されるすべての情報を圧縮します。 セクション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 DATABASEALTER 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_formatMIXED に設定された状態で稼働していて、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 リリースバイナリは、このオプションを使用して構築されません。

  • --debug-check

    プログラムの終了時に、デバッグ情報を出力します。

    このオプションは、MySQL が WITH_DEBUG を使用して構築された場合にのみ使用できます。 Oracle によって提供される MySQL リリースバイナリは、このオプションを使用して構築されません。

  • --debug-info

    プログラムの終了時に、デバッグ情報とメモリーおよび CPU 使用率の統計を出力します。

    このオプションは、MySQL が WITH_DEBUG を使用して構築された場合にのみ使用できます。 Oracle によって提供される MySQL リリースバイナリは、このオプションを使用して構築されません。

  • --default-auth=plugin

    使用するクライアント側認証プラグインに関するヒント。 セクション6.2.17「プラガブル認証」を参照してください。

  • --defaults-extra-file=file_name

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

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

  • --defaults-file=file_name

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

    例外: --defaults-file でも、クライアントプログラムは .mylogin.cnf を読み取ります。

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

  • --defaults-group-suffix=str

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

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

  • --disable-log-bin, -D

    バイナリロギングを無効化します。 これは、--to-last-log オプションを使用して同じ MySQL サーバーに対して出力を送信している場合、無限ループを回避するのに便利です。 このオプションは、ログに記録したステートメントの重複を回避するために、予期しない終了後にリストアする場合にも役立ちます。

    このオプションを使用すると、mysqlbinlog の出力に SET sql_log_bin = 0 ステートメントが含まれ、残りの出力のバイナリロギングが無効になります。 sql_log_bin システム変数のセッション値の操作は制限付き操作であるため、このオプションを使用するには、制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。

  • --exclude-gtids=gtid_set

    gtid_set にリストされたグループを表示しません。

  • --force-if-open, -F

    バイナリログファイルが開いているか適切に閉じられていない場合でも読み取ります。

  • --force-read, -f

    このオプションでは、mysqlbinlog が認識できないバイナリログイベントを読み取った場合に、警告を出力し、イベントを無視して続行します。 このオプションを使用しない場合は、mysqlbinlog はそのようなイベントを読み取ると停止します。

  • --get-server-public-key

    RSA キーペアベースのパスワード交換に必要な公開キーをサーバーにリクエストします。 このオプションは、caching_sha2_password 認証プラグインで認証されるクライアントに適用されます。 そのプラグインの場合、サーバーは要求されないかぎり公開鍵を送信しません。 このオプションは、そのプラグインで認証されないアカウントでは無視されます。 クライアントがセキュアな接続を使用してサーバーに接続する場合と同様に、RSA ベースのパスワード交換を使用しない場合も無視されます。

    --server-public-key-path=file_name が指定され、有効な公開キーファイルが指定されている場合は、--get-server-public-key よりも優先されます。

    caching_sha2_password プラグインの詳細は、セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。

  • --hexdump, -H

    セクション4.6.8.1「mysqlbinlog 16 進ダンプ形式」に説明されているように、ログの 16 進ダンプをコメントに表示します。 16 進出力はレプリケーションのデバッグに便利な場合があります。

  • --host=host_name, -h host_name

    指定されたホストの MySQL サーバーからバイナリログを取得します。

  • --idempotent

    更新の処理中に多重呼出し不変モードを使用するように MySQL Server に指示します。これにより、更新の処理中に現在のセッションでサーバーが検出した重複キーまたはキーが見つからないエラーが抑制されます。 このオプションは、必要に応じて、またはログが参照するすべてのデータが含まれていない可能性がある MySQL Server にバイナリログをリプレイする必要がある場合に便利です。

    このオプションの効果の範囲には、現在の mysqlbinlog クライアントおよびセッションのみが含まれます。

  • --include-gtids=gtid_set

    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 プログラムによっても自動的に削除されません。

  • --login-path=name

    .mylogin.cnf ログインパスファイルの指定されたログインパスからオプションを読み取ります。 「ログインパス」は、接続先の MySQL サーバーおよび認証に使用するアカウントを指定するオプションを含むオプショングループです。 ログインパスファイルを作成または変更するには、mysql_config_editor ユーティリティを使用します。 セクション4.6.7「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください。

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

  • --no-defaults

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

    例外として、.mylogin.cnf ファイルは、存在する場合はすべての場合に読み取られます。 これにより、--no-defaults が使用された場合にも、コマンド行よりも安全な方法でパスワードを指定できます。(.mylogin.cnfmysql_config_editor ユーティリティーによって作成されます。 セクション4.6.7「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください)。

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

  • --offset=N, -o N

    ログの最初の N 個のエントリをスキップします。

  • --open-files-limit=N

    予約するオープンファイルディスクリプタの数を指定します。

  • --password[=password], -p[password]

    サーバーへの接続に使用される MySQL アカウントのパスワード。 パスワード値はオプションです。 指定しない場合、mysqlbinlog によってプロンプトが表示されます。 指定する場合は、--password= または -p とそれに続くパスワードの間にスペースなしが存在する必要があります。 パスワードオプションを指定しない場合、デフォルトではパスワードは送信されません。

    コマンド行でのパスワード指定は、セキュアでないと考えるべきです。 コマンド行でパスワードを指定しないようにするには、オプションファイルを使用します。 セクション6.1.2.1「パスワードセキュリティーのためのエンドユーザーガイドライン」を参照してください。

    パスワードがなく、mysqlbinlog でパスワードの入力を求められないように明示的に指定するには、--skip-password オプションを使用します。

  • --plugin-dir=dir_name

    プラグインを検索するディレクトリ。 このオプションは、--default-auth オプションを使用して認証プラグインを指定しても、mysqlbinlog がそれを検出しない場合に指定します。 セクション6.2.17「プラガブル認証」を参照してください。

  • --port=port_num, -P port_num

    リモートサーバーへの接続に使用する TCP/IP ポート番号。

  • --print-defaults

    プログラム名と、オプションファイルから受け取るすべてのオプションを出力します。

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

  • --print-table-metadata

    バイナリログからテーブル関連のメタデータを出力します。 binlog-row-metadata を使用して、ログに記録されるテーブル関連のメタデータバイナリの量を構成します。

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    サーバーへの接続に使用するトランスポートプロトコル。 これは、他の接続パラメータが通常、必要なプロトコル以外のプロトコルを使用する場合に便利です。 許可される値の詳細は、セクション4.2.7「接続トランスポートプロトコル」を参照してください。

  • --raw

    デフォルトでは、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 権限が必要です。

  • --read-from-remote-server, -R

    バイナリログをローカルログファイルからではなく MySQL サーバーから読み取ります。 このオプションでは、リモートサーバーが稼働していることが必要です。 リモートサーバー上のバイナリログファイルに対してのみ機能します。リレーログファイルには機能しません。

    接続パラメータオプションは、このオプションまたは --read-from-remote-master オプションとともに使用します。 これらのオプションは --host--password--port--protocol--socket、および --user です。 どちらのリモートオプションも指定しない場合、接続パラメータオプションは無視されます。

    このオプションを使用するには、REPLICATION SLAVE 権限が必要です。

    このオプションは、--read-from-remote-master=BINLOG-DUMP-NON-GTIDS に似ています。

  • --result-file=name, -r name

    --raw オプションがない場合は、このオプションは mysqlbinlog がテキスト出力を書き出すファイルを示します。 --raw がある場合は、mysqlbinlog はサーバーから転送される各ログファイルに対して 1 つのバイナリ出力ファイルを、デフォルトでは現在のディレクトリに元のログファイルと同じ名前で書き出します。 この場合、--result-file オプションの値は出力ファイル名を変更するプリフィクスとして処理されます。

  • --require-row-format

    イベントの行ベースのバイナリロギング形式が必要です。 このオプションは、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 命令、一時テーブルの作成または削除、INTVARRAND または 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_nameto_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 に一致する更新は残っていません。

  • --server-id=id

    指定されたサーバー ID を持つサーバーによって作成されたイベントのみを表示します。

  • --server-id-bits=N

    サーバーを特定するために、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-charset=charset_name

    SET NAMES charset_name ステートメントを出力に追加して、ログファイルの処理に使用される文字セットを指定します。

  • --shared-memory-base-name=name

    Windows の場合、共有メモリを使用してローカルサーバに接続するために使用する共有メモリ名。 デフォルト値は MYSQL です。 共有メモリー名では大文字と小文字が区別されます。

    このオプションは、共有メモリー接続をサポートするために shared_memory システム変数を有効にしてサーバーを起動した場合にのみ適用されます。

  • --short-form, -s

    追加情報および行ベースのイベントなしで、ログに含まれるステートメントのみを表示します。 これはテスト専用で、本番環境のシステムで使用するべきではありません。 これは非推奨であり、将来のリリースで削除される予定です。

  • --skip-gtids[=(true|false)]

    出力に 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"

    そうでない場合には、このオプションを本番環境で使用することは、通常推奨されません。

  • --socket=path, -S path

    localhost への接続用に使用する、Unix ソケットファイル、または Windows では使用する名前付きパイプの名前。

    Windows では、このオプションは、名前付きパイプ接続をサポートするために named_pipe システム変数を有効にしてサーバーを起動した場合にのみ適用されます。 また、接続を行うユーザーは、named_pipe_full_access_group システム変数で指定された Windows グループのメンバーである必要があります。

  • --ssl*

    --ssl で始まるオプションは、SSL を使用してサーバーに接続するかどうかを指定し、SSL 鍵および証明書を検索する場所を指定します。 暗号化接続のコマンドオプションを参照してください。

  • --ssl-fips-mode={OFF|ON|STRICT}

    クライアント側で FIPS モードを有効にするかどうかを制御します。 --ssl-fips-mode オプションは、暗号化された接続の確立には使用されず、許可する暗号化操作に影響する点で、他の --ssl-xxx オプションとは異なります。 セクション6.8「FIPS のサポート」を参照してください。

    次の --ssl-fips-mode 値を使用できます:

    • OFF: FIPS モードを無効にします。

    • ON: FIPS モードを有効にします。

    • STRICT: strict FIPS モードを有効にします。

    注記

    OpenSSL FIPS オブジェクトモジュールが使用できない場合、--ssl-fips-mode に許可される値は OFF のみです。 この場合、--ssl-fips-modeON または STRICT に設定すると、クライアントは起動時に警告を生成し、FIPS 以外のモードで動作します。

  • --start-datetime=datetime

    datetime 引数と同じかそれより遅いタイムスタンプを持つ最初のイベントから、バイナリログの読み取りを始めます。 datetime 値は、mysqlbinlog を実行するマシンのローカルタイムゾーンに相対的です。 値は DATETIME または TIMESTAMP データ型に受け付けられる形式にしてください。 例:

    shell> mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000003

    このオプションはポイントインタイムリカバリに便利です。 セクション7.5「Point-in-Time (増分) リカバリ」を参照してください。

  • --start-position=N, -j N

    ログ位置 N でバイナリログのデコードを開始します。出力には、位置 N 以降で開始するイベントも含まれます。 位置はログファイル内のバイトポイントであり、イベントカウンタではありません。有用な出力を生成するには、イベントの開始位置を指す必要があります。 このオプションはコマンド行で最初に指名されたログファイルに適用されます。

    このオプションはポイントインタイムリカバリに便利です。 セクション7.5「Point-in-Time (増分) リカバリ」を参照してください。

  • --stop-datetime=datetime

    datetime 引数と同じかそれより遅いタイムスタンプを持つ最初のイベントで、バイナリログの読み取りを終了します。 datetime 値の詳細については、--start-datetime オプションの説明を参照してください。

    このオプションはポイントインタイムリカバリに便利です。 セクション7.5「Point-in-Time (増分) リカバリ」を参照してください。

  • --stop-never

    このオプションは --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 を指定します。

  • --stop-position=N

    ログ位置 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-version=protocol_list

    暗号化された接続に許可される TLS プロトコル。 値は、1 つまたは複数のコンマ区切りプロトコル名のリストです。 このオプションに指定できるプロトコルは、MySQL のコンパイルに使用される SSL ライブラリによって異なります。 詳細は、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」を参照してください。

  • --to-last-log, -t

    MySQL サーバーから要求されたバイナリログの最後で終了せず、最後のバイナリログの最後まで続けて出力します。 同じ MySQL サーバーに出力を送信した場合、無限ループになる場合があります。 このオプションには --read-from-remote-server が必要です。

  • --user=user_name, -u user_name

    リモートサーバーへの接続時に使用する MySQL アカウントのユーザー名。

  • --verbose, -v

    行イベントを再構築し、該当する場合はテーブルパーティション情報とともにコメント付き SQL ステートメントとして表示します。 このオプションを (\"-vv \"または\"--verbose --verbose\"のいずれかを渡して) 2 回指定すると、出力には、カラムのデータ型と一部のメタデータを示すコメント、および binlog_rows_query_log_events システム変数が TRUE に設定されている場合の行クエリーログイベントなどの情報ログイベントが含まれます。

    --base64-output および --verbose の行イベント出力への影響を示す例は、セクション4.6.8.2「mysqlbinlog 行イベントの表示」を参照してください。

  • --verify-binlog-checksum, -c

    バイナリログファイルのチェックサムを検証します。

  • --version, -V

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

    このオプションを使用するときに表示される 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 オプションを使用します。

mysqlbinlogLOAD DATA ステートメントを LOAD DATA LOCAL ステートメントに変換する (つまり、LOCAL を追加する) ため、ステートメントの処理に使用するクライアントとサーバーの両方で LOCAL 機能を有効にして構成する必要があります。 セクション6.1.6「LOAD DATA LOCAL のセキュリティー上の考慮事項」を参照してください。

警告

LOAD DATA LOCAL ステートメント用に作成された一時ファイルは、これらのステートメントをユーザーが実際に実行するまで必要なため、自動的には削除されません。 ステートメントログが必要なくなった時点で、ユーザーが一時ファイルを削除するようにしてください。 これらのファイルは一時ファイルディレクトリに存在し、original_file_name-#-# といった名前が付いています。