この記事では、mysql binlog の使用方法を紹介します。これには、実行された SQL ステートメントのオープン、クローズ、ステータスの表示、更新、クリア、表示およびその他の操作が含まれます。誰もが学びやすいように、5.7 以前のバージョンの設定についても説明しています。
Binlog はバイナリ ログであり、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。
mysql binlog ファイルによると、どの SQL ステートメントが実行されたかを確認し、データ回復、マスター/スレーブ同期レプリケーション、その他の操作を実行できます。
binlog ファイルは、データベースの処理と回復において重要な役割を果たします。
mysql binlog 設定の表示
show global variables like '%log_bin%'; +---------------------------------+-------+| Variable_name | Value | +---------------------------------+-------+| log_bin | OFF | | log_bin_basename | | | log_bin_index | | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF |+---------------------------------+-------+
binlog は現在閉じられています。
binlog を開きます
my.cnf または my.ini を開き、次の内容を追加しますステートメント、Restart mysql
log_bin=ONlog_bin_basename=/usr/local/var/mysql/mysql-binlog_bin_index=/usr/local/var/mysql/mysql-bin.index
log_bin
ON は、binlog ログを開き、それを OFF に変更することを意味します。
log_bin_basename
は、binlog ログの基本ファイル名を表し、各ファイルを区別するための識別子が追加されます。
log_bin_index
binlog ファイルのインデックス ファイルを指定します。このファイルは、すべての binlog ファイルのディレクトリを管理します。
mysql5.7 より前の場合は、この設定で十分です。5.7 より上の場合は、次のように設定する必要があります。
log_bin=mysql-binserver_id=123456
log_bin カスタム binlog ファイル名を示します。
server_id は、他のクラスター マシンと同じ名前を持たない文字列をランダムに指定することを意味します。これは、mysql レプリケーションを構成するときに定義する必要があります。これを繰り返すことはできません。 canal のスレーブ ID を使用します。
再起動後に mysql binlog 設定を再度確認してください
show global variables like '%log_bin%'; +---------------------------------+--------------------------------------+| Variable_name | Value | +---------------------------------+--------------------------------------+| log_bin | ON | | log_bin_basename | /usr/local/var/mysql/mysql-bin | | log_bin_index | /usr/local/var/mysql/mysql-bin.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF |+---------------------------------+--------------------------------------+
binlog が有効になっていることがわかります。
show master logs; +------------------+-----------+| Log_name | File_size | +------------------+-----------+| mysql-bin.000001 | 177 | | mysql-bin.000002 | 177 | | mysql-bin.000003 | 177 | | mysql-bin.000004 | 177 | | mysql-bin.000005 | 177 | | mysql-bin.000006 | 177 | | mysql-bin.000007 | 201 | | mysql-bin.000008 | 201 | | mysql-bin.000009 | 201 || mysql-bin.000010 | 154 | +------------------+-----------+
show master status; +------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+| mysql-bin.000010 | 154 | | | | +------------------+----------+--------------+------------------+-------------------+
flush logs;
reset master;
binlog ログ ファイルを表示して、どの SQL ステートメントが実行されたかを確認します。処理には mysqlbinlog ツールを使用できます。
まず、log_bin_basename に従って、binlog ファイルが保存されているディレクトリを見つけて、mysqlbinlog ツールを使用して、対応する binlog ファイルを表示します。
例:
mysqlbinlog -v mysql-bin.000001 > mysql-bin-1.log
次に、mysql-bin-1.log をチェックして、実行された SQL ステートメントを確認します。
BINLOG ' Xq1HWhNA4gEAPAAAAGQBAAAAAPEEAAAAAAEACXRlc3RfdXNlcgAGY3NfdGFnAAUDDwEDAwL9AgBa WZlG Xq1HWh5A4gEANwAAAJsBAAAAAPEEAAAAAAEAAgAF/+ACAAAABABjc2RuAf2LG1r9ixtaIS88ZA== '/*!*/;### INSERT INTO `test_user`.`cs_tag`### SET### @1=2### @2='csdn'### @3=1### @4=1511754749### @5=1511754749# at 411
mysqlbinlog
を使用する場合は、いくつかの点に注意する必要があります。現在書き込まれている binlog ファイルを確認しないでください。ファイルを別のファイルにコピーできます。ディレクトリを確認してから実行してください。
2. アクセスを強制するために、force パラメータを追加しないでください。
3. binlog 形式が行モードの場合は、-vv パラメーターを追加してください。
この記事では、mysql binlog の使用方法について説明します。関連知識の詳細については、php 中国語 Web サイトを参照してください。
関連する推奨事項:
トークン バケット アルゴリズムを使用して redis に基づくフロー制御を実装する PHP の関連コンテンツについて説明します
#テーブル パーティションを再構築してデータを保持するための mysql の関連メソッドの詳細な説明# #
以上がmysql binlog の使い方を説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。