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 でインデックスをキーとして使用することが推奨されないのはなぜですか?

推薦する

JavaScriptの基本的なインタラクションの詳細な説明

目次1. 要素の入手方法文書から入手ID取得クラス名 (className) を取得します。タグ名 ...

MySQL での utf8mb4 照合の例

MySQL における一般的な utf8mb4 ソート規則は次のとおりです。 utf8mb4_0900...

フロントエンドJavaScriptの動作原理

目次1. JavaScript エンジンとは何ですか? 2. V8エンジン3. ランタイム環境4. ...

Apple Watchのインタラクションデザインにおける4つの全く異なる体験が明らかに

今日も Watch アプリのデザインに関する話です。私はケーススタディが大好きなので、同じトピックを...

CocosCreator MVCアーキテクチャの詳細な説明

概要この記事では、ゲームクライアントでよく使用される MVC アーキテクチャについて紹介します。ゲー...

フロントエンドHTMLスキン変更機能の実装コード

透明を含む5つの肌の色を変更するには50行のコードが必要です最初にコードをお渡ししますので、ご自身で...

HTML メタビューポート属性の詳細な説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

Mac で Docker を使用して Oracle をデプロイする方法

Mac で Docker を使用して Oracle をデプロイする方法まずdockerをインストール...

MySQL クエリのソートとクエリ集計関数の使用法の分析

この記事では、例を使用して、MySQL クエリのソート関数とクエリ集計関数の使用方法を説明します。ご...

XHTML Web ページ チュートリアル

この記事は主に、初心者に XHTML の基本的な知識と、XHTML と HTML の違いを理解しても...

Vueはシンプルなショッピングカートの例を実装します

この記事では、参考までに、Vue の具体的なコードを共有して、簡単なショッピングカートを実装します。...

MySQLウィンドウ関数の具体的な使用法

目次1. ウィンドウ関数とは何ですか? 1. ウィンドウをどのように理解しますか? 2. ウィンドウ...

11 の素晴らしい JavaScript コード リファクタリングのベスト プラクティスの概要

目次1. 関数の抽出2. 重複した条件付きスニペットを結合する3. 条件分岐文を関数に抽出する4. ...

CSS 透明ボーダー背景クリップマジック

この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...

Vue でルーティング遷移効果を実装する 4 つの方法

Vue ルーター トランジションは、Vue プログラムにパーソナライズされたエフェクトをすばやく簡単...