ホームページ  >  記事  >  バックエンド開発  >  mysql binlog の使い方を説明する

mysql binlog の使い方を説明する

jacklove
jackloveオリジナル
2018-06-08 15:39:483060ブラウズ

この記事では、mysql binlog の使用方法を紹介します。これには、実行された SQL ステートメントのオープン、クローズ、ステータスの表示、更新、クリア、表示およびその他の操作が含まれます。誰もが学びやすいように、5.7 以前のバージョンの設定についても説明しています。

mysql binlog の概要

Binlog はバイナリ ログであり、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。

mysql binlog ファイルによると、どの SQL ステートメントが実行されたかを確認し、データ回復、マスター/スレーブ同期レプリケーション、その他の操作を実行できます。

binlog ファイルは、データベースの処理と回復において重要な役割を果たします。

1.mysql 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 が有効になっていることがわかります。

2. 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 |
+------------------+-----------+

3. 現在書き込まれている binlog ログを表示します

show master status;
+------------------+----------+--------------+------------------+-------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000010 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

4.

flush logs;

5. ログ ファイルをクリアします

reset master;

6. binglog ログ ファイルの内容を表示します

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 の関連コンテンツについて説明します

#PHP でロゴ付きの QR コード クラスを作成する方法

#テーブル パーティションを再構築してデータを保持するための mysql の関連メソッドの詳細な説明# #

以上がmysql binlog の使い方を説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。