MySQLテーブルの内容の変更を監視し、MySQL binlogを有効にする

MySQLテーブルの内容の変更を監視し、MySQL binlogを有効にする

序文

binlog は、MySQL のすべての追加、削除、および変更ステートメントを記録するバイナリ ログ ファイルです。 binlog ログを通じて、データ復旧、マスタースレーブレプリケーションなどを実行できます。ご覧のとおり、この binlog があれば、mysql の完全なバックアップが保持されます。

特定のテーブルの変更を監視してから、何らかの操作を実行する必要があるという要件に頻繁に遭遇します。

テーブル内のデータが追加されるだけで、削除または変更されていない場合は、監視は比較的簡単です。最新の ID を定期的に照会できます。ただし、削除または変更操作が必要な場合は、テーブル全体をスキャンする必要があり、非常に非効率的です。テーブルが変更されたときに、監視のためにイベントをトリガーできると最適です。

これで、binlog を通じて完了できます。 binlog の変更を監視するだけで、ステートメントが実行されるたびに binlog に記録され、監視できるようになります。

Binlog はデフォルトで無効になっています。有効にするには、MySQL 構成ファイルを変更する必要があります。

Mac に brew によってインストールされた MySQL のデフォルトのインストール ディレクトリは /usr/local/Cellar で、バージョンは 5.7.21 です。


ご覧のとおり、ディレクトリ内に構成ファイルはありません。これは他のバージョンとは異なる場合があります。他のバージョンでは、ルート ディレクトリに my.ini または my.cnf ファイルがあったり、support-files に my-default.cnf ファイルがあったりしますが、このバージョンにはそれがありません。

設定ファイルを変更するには、自分で作成する必要があります。

/etc/ ディレクトリに次の内容の my.cnf ファイルを作成します。

[mysqld]
サーバーID = 1
ログ bin = mysql bin
binlog 形式 = ROW

mysql-bin は単なる名前なので、任意の名前を使用できます。今後保存されるログファイル名は、mysql-bin.000001、mysql-bin.000002 になります。

binlog_format は ROW に設定する必要があることに注意してください。これは、STATEMENT モードまたは MIXED モードでは、Binlog は特定のデータなしで SQL ステートメントのみを記録および送信する (ログ サイズを削減するため) ため、データを保存できないためです。

次に、brew restart mysql で mysql を再起動します。次に、mysql -uroot -pコマンドでMySQLコンソールに入り、実行します。

'%log_bin%' のような変数を表示します。 

上の矢印は my.cnf が設定されていない場合、下の矢印は my.cnf が設定されて再起動された後です。

show master statusコマンドを使用すると、現在書き込まれているバイナリログのステータスを表示できます。


次のようなコマンドもあります:

binlog ログ ファイルを更新してログをフラッシュします # 更新後、新しい binlog ログが作成されます。

ログ ファイルをクリアし、マスターをリセットします。

最初の binlog ファイルの内容を表示するにはshow binlog events

指定された binlog ファイルの内容を表示するにはshow binlog events in 'mysql-bin.000004'

バイナリログ ファイルのリストを取得しshow binary logs

binlog だけでは不十分で、binlog を監視するツールも必要です。次の記事: 運河

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQL で binlog を使用する際のフォーマットの選択方法
  • 検証例 MySQL | 同じ値を持つフィールドを更新すると、binlog に記録されます
  • MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal
  • MySQL 8.0 の binlog の詳細な説明
  • MYSQL の binlog 最適化に関する考察の要約
  • MySQL フラッシュバック ツール binlog2sql の詳細なインストールと設定のチュートリアル
  • MySQLはmysqldump+binlogを使用して、削除されたデータベースの原理分析を完全に復元します。
  • MySQL バイナリログデータ復旧: 誤ってデータベースを削除した場合の詳細な説明
  • MySQL binlog_ignore_dbパラメータの具体的な使用法

<<:  Linux でスペースを含むファイルを削除する (ディレクトリではない)

>>:  React でインデックスをキーとして使用することが推奨されないのはなぜですか?

推薦する

HTML+CSS+JavaScript でシンプルな三目並べゲームを作成する

目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...

Windows での MySQL スケジュールバックアップ スクリプトの実装

Windows サーバーでデータベース データを定期的にバックアップする場合は、Windows タス...

2048 ゲームを実装するためのネイティブ js

2048ミニゲーム、参考までに具体的な内容は以下のとおりですまず、2048ゲームは16のグリッドか...

HTML のキャンバスに基づくスクリーンショットのデモ

冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...

MySQL を解凍してインストールおよび完全に削除する方法の詳細なグラフィック説明

1. MySQLをインストールする(1)ダウンロードしたMySQLの圧縮ファイルをMySQLをインス...

Linux インストール Redis 実装プロセスとエラー解決

今日、redis をインストールしたところ、今までになかったいくつかのエラーが発生しました。ここで記...

MySQL の 10 進数データ型の小数点埋め込み問題の詳細な説明

序文開発プロセスでは、10 進データ型がよく使用されます。 MySQL では、小数点は正確なデータ型...

ブラウザ(IEシリーズ)を判別するための条件付きコメント

<!--[if IE 6]> IE6 のみが認識可能 <![endif]-->...

ラムダ式の原則と例

ラムダ式ラムダ式 (クロージャとも呼ばれる) は、Java 8 のリリースを推進した最も重要な新機能...

ノードを使用して静的ファイルキャッシュを実装する方法

目次キャッシュキャッシュ位置の分類キャッシュ設定ヘッダーNodeは静的ファイルキャッシュを実装する強...

MySQL エラー コード 1064 の解決策

SQL ステートメント内の単語が mysql のキーワードと競合する場合は、`` (タブ キーの上)...

SQL 面接の質問: 時間差の合計を求める (重複は無視)

ある会社の BI 職の面接を受けたとき、面接で SQL に関する質問がありました。一見すると非常に簡...

mysql 5.7.17 winx64.zip インストールと設定方法のグラフィックチュートリアル

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

node.js が大規模プロジェクトに適さない理由

目次序文1. アプリケーションコンポーネント2. アプリケーションの種類3. アプリケーションサービ...

Mysql+JavaSwing に基づくスーパーマーケット商品管理システムの設計と実装

目次1. 機能紹介2. キーコード2.1 ホームページの機能2.2 製品情報を追加する2.3 データ...