Überwachen Sie Änderungen im MySQL-Tabelleninhalt und aktivieren Sie das MySQL-Binärprotokoll

Überwachen Sie Änderungen im MySQL-Tabelleninhalt und aktivieren Sie das MySQL-Binärprotokoll

Vorwort

binlog ist eine binäre Protokolldatei, die alle Hinzufügungs-, Lösch- und Änderungsanweisungen von MySQL aufzeichnet. Durch Binlog-Protokolle können wir Datenwiederherstellung, Master-Slave-Replikation usw. durchführen. Wie Sie sehen, verfügen wir, solange wir dieses Binärprotokoll haben, über eine vollständige Sicherung von MySQL.

Wir stoßen häufig auf eine solche Anforderung, d. h. wir müssen die Änderungen in einer bestimmten Tabelle überwachen und dann einige Vorgänge ausführen.

Wenn die Daten in der Tabelle nur hinzugefügt und nicht gelöscht oder geändert werden, ist die Überwachung relativ einfach. Sie können die neueste ID regelmäßig abfragen. Wenn jedoch Lösch- oder Änderungsvorgänge erforderlich sind, muss die gesamte Tabelle gescannt werden, was äußerst ineffizient ist. Optimal wäre es, wenn bei einer Änderung der Tabelle ein Event zur Überwachung ausgelöst werden kann.

Jetzt können wir es über Binlog abschließen. Überwachen Sie einfach die Änderungen im Binärprotokoll, sodass jede Ausführung einer Anweisung im Binärprotokoll aufgezeichnet wird und wir sie überwachen können.

Binlog ist standardmäßig deaktiviert. Um es zu aktivieren, müssen wir die MySQL-Konfigurationsdatei ändern.

Das Standardinstallationsverzeichnis von MySQL, das von Brew auf dem Mac installiert wird, ist /usr/local/Cellar und die Version ist 5.7.21.


Wie Sie sehen, befindet sich keine Konfigurationsdatei im Verzeichnis. Dies kann bei einigen anderen Versionen anders sein. Andere Versionen haben möglicherweise eine my.ini- oder my.cnf-Datei im Stammverzeichnis oder eine my-default.cnf-Datei in den Support-Dateien, aber diese Version hat das nicht.

Um die Konfigurationsdatei zu ändern, müssen wir sie selbst erstellen.

Erstellen Sie im Verzeichnis /etc/ eine my.cnf-Datei mit folgendem Inhalt:

[mysqld]
Server-ID = 1
log-bin = mysql-bin
Binlog-Format = ROW

mysql-bin ist nur ein Name. Sie können jeden beliebigen Namen verwenden. Die zukünftig gespeicherten Protokolldateinamen lauten mysql-bin.000001 und mysql-bin.000002.

Beachten Sie, dass binlog_format auf ROW eingestellt sein muss, da Binlog im STATEMENT- oder MIXED-Modus nur SQL-Anweisungen ohne spezifische Daten aufzeichnet und überträgt (um die Protokollgröße zu reduzieren), sodass wir diese nicht speichern können.

Starten Sie dann MySQL über „Brew Restart MySQL“ neu. Rufen Sie dann die MySQL-Konsole über den Befehl mysql -uroot -p auf und führen Sie aus

Variablen wie „%log_bin%“ anzeigen; 

Der Pfeil oben zeigt an, wenn my.cnf nicht festgelegt ist, und der Pfeil unten zeigt an, nachdem my.cnf festgelegt und neu gestartet wurde.

Mit dem Befehl show master status können Sie den Status des aktuell geschriebenen Binärprotokolls anzeigen.


Es gibt auch Befehle wie:

Binlog-Protokolldatei aktualisieren, Protokolle leeren. #Nach der Aktualisierung wird ein neues Binlog-Protokoll erstellt.

Löschen Sie die Protokolldatei und setzen Sie den Master zurück.

Zeigen Sie den Inhalt der ersten Binlog-Datei an show binlog events .

Zeigen Sie den Inhalt der angegebenen Binlog-Datei an show binlog events in 'mysql-bin.000004' .

Holen Sie sich die Liste der Binlog-Dateien show binary logs .

Binlog allein reicht nicht aus, wir benötigen außerdem ein Tool zur Überwachung von Binlog. Nächster Artikel: Kanal

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So wählen Sie das Format bei der Verwendung von Binlog in MySQL
  • Beispielüberprüfung MySQL | Update-Feld mit demselben Wert zeichnet Binlog auf
  • Detaillierte Erläuterung des Binlog-Protokollanalysetools zur Überwachung von MySQL: Canal
  • Ausführliche Erklärung des Binlogs in MySQL 8.0
  • Zusammenfassung einiger Gedanken zur Binlog-Optimierung in MySQL
  • Detailliertes Installations- und Konfigurationstutorial zum MySQL-Flashback-Tool binlog2sql
  • MySQL verwendet mysqldump + binlog, um die Prinzipanalyse der gelöschten Datenbank vollständig wiederherzustellen
  • MySQL Binlog-Datenwiederherstellung: Detaillierte Erklärung zum versehentlichen Löschen einer Datenbank
  • Spezifische Verwendung des MySQL-Parameters binlog_ignore_db

<<:  So löschen Sie den Timer elegant in Vue

>>:  Löschen von Dateien mit Leerzeichen in Linux (keine Verzeichnisse)

Artikel empfehlen

Beispielcode zur Implementierung des Bildschubladeneffekts mit CSS3

Wie üblich posten wir zuerst den Bildeffekt: Das ...

Beispiel einer datenbankübergreifenden Abfrage in MySQL

Vorwort In MySQL werden datenbankübergreifende Ab...

js regulärer Ausdruck Lookahead und Lookbehind und nicht erfassende Gruppierung

Inhaltsverzeichnis Kombinieren von Lookahead und ...

JavaScript-Komposition und Vererbung erklärt

Inhaltsverzeichnis 1. Einleitung 2. Vererbung der...

Erstellen Sie eine Bildschirmaufzeichnungsfunktion mit JS

OBS studio ist cool, aber JavaScript ist cooler. ...

Detaillierte Erklärung der langsamen Remote-Verbindung von Navicat zu MySQL

Die endgültige Lösung ist im letzten Bild Wenn Si...

Beispielcode zum Ändern der Farbe eines PNG-Bildes durch einen CSS3-Filter

Diese Methode verwendet den filter in CSS3 drop-s...

CSS setzt die Höhe des Box-Containers (div) immer auf 100 %

Vorwort Manchmal muss die Höhe eines Box-Containe...

So deinstallieren Sie IIS7-Web- und FTP-Dienste in Win7 vollständig

Nachdem ich gestern die PHP-Entwicklungsumgebung ...

MySQL-Variablendeklaration und Analyse gespeicherter Prozeduren

Deklarieren von Variablen Festlegen globaler Vari...

So erstellen Sie ein Apr-Modul zur Tomcat-Leistungsoptimierung

Vorwort Tomcat ist ein weit verbreiteter Java-Web...

So blockieren Sie IP und IP-Bereich in Nginx

Vorne geschrieben Nginx ist nicht nur ein Reverse...