Heim > Backend-Entwicklung > PHP-Tutorial > Erklären Sie, wie Sie MySQL-Binlog verwenden

Erklären Sie, wie Sie MySQL-Binlog verwenden

jacklove
Freigeben: 2023-03-30 20:10:01
Original
3113 Leute haben es durchsucht

In diesem Artikel wird die Verwendung von MySQL-Binlog vorgestellt, einschließlich Öffnen, Schließen, Anzeigen des Status, Aktualisieren, Löschen, Anzeigen ausgeführter SQL-Anweisungen und anderer Vorgänge. Um das Erlernen für alle zu erleichtern, werden auch die Einstellungen von 5.7 und älteren Versionen erklärt.

MySQL-Binlog-Einführung

Binlog ist ein Binärprotokoll, eine binäre Protokolldatei, die alle MySQL-DML-Vorgänge aufzeichnet.

Anhand der MySQL-Binlog-Datei können wir überprüfen, welche SQL-Anweisungen ausgeführt wurden, Datenwiederherstellung, synchrone Master-Slave-Replikation und andere Vorgänge durchführen.

Die Binlog-Datei spielt eine wichtige Rolle bei der Verarbeitung und Wiederherstellung einer Datenbank.

1. MySQL-Binlog öffnen und schließen

MySQL-Binlog-Konfiguration anzeigen

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   |+---------------------------------+-------+
Nach dem Login kopieren

Binlog ist derzeit geschlossen.

Binlog öffnen

Öffnen Sie my.cnf oder my.ini und fügen Sie Folgendes hinzu Anweisung, MySQL neu starten

log_bin=ONlog_bin_basename=/usr/local/var/mysql/mysql-binlog_bin_index=/usr/local/var/mysql/mysql-bin.index
Nach dem Login kopieren

log_bin
ON bedeutet, das Binlog-Protokoll einzuschalten und es aus auf OFF zu stellen.

log_bin_basename
stellt den Basisdateinamen des Binlog-Protokolls dar, und zur Unterscheidung jeder Datei wird eine Kennung angehängt.

log_bin_index
Gibt die Indexdatei der Binlog-Datei an. Diese Datei verwaltet das Verzeichnis aller Binlog-Dateien.


Wenn es MySQL 5.7 oder niedriger ist, reicht diese Einstellung aus. Wenn es 5.7 oder höher ist, müssen Sie es wie folgt einstellen:

log_bin=mysql-binserver_id=123456
Nach dem Login kopieren

log_bin steht für den Namen der benutzerdefinierten Binlog-Datei.

server_id bedeutet die zufällige Angabe einer Zeichenfolge, die nicht den gleichen Namen wie andere Cluster-Maschinen hat. Sie muss bei der Konfiguration der MySQL-Replikation definiert werden mit der SlaveId von Canal.

Überprüfen Sie nach dem Neustart erneut die MySQL-Binlog-Konfiguration

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                                  |+---------------------------------+--------------------------------------+
Nach dem Login kopieren

Sie können sehen, dass das Binlog aktiviert ist.

2. Sehen Sie sich die Binlog-Protokolldateiliste an

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 |
+------------------+-----------+
Nach dem Login kopieren

3. Sehen Sie sich das Binlog-Protokoll an, das gerade geschrieben wird

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

4

flush logs;
Nach dem Login kopieren

5. Löschen Sie die Protokolldatei

reset master;
Nach dem Login kopieren

Sehen Sie sich den Inhalt der Binglog-Protokolldatei an

Sehen Sie sich die Binlog-Protokolldatei an, um zu sehen, welche SQL-Anweisungen ausgeführt wurden kann mysqlbinlog Tools zur Verarbeitung verwenden.

Suchen Sie zunächst gemäß log_bin_basename das Verzeichnis, in dem die Binlog-Datei gespeichert ist, und verwenden Sie dann das MySQLbinlog-Tool, um die entsprechende Binlog-Datei anzuzeigen.

Zum Beispiel:

mysqlbinlog -v mysql-bin.000001 > mysql-bin-1.log
Nach dem Login kopieren

Überprüfen Sie dann mysql-bin-1.log, um die ausgeführten SQL-Anweisungen anzuzeigen.

BINLOG '
Xq1HWhNA4gEAPAAAAGQBAAAAAPEEAAAAAAEACXRlc3RfdXNlcgAGY3NfdGFnAAUDDwEDAwL9AgBa
WZlG
Xq1HWh5A4gEANwAAAJsBAAAAAPEEAAAAAAEAAgAF/+ACAAAABABjc2RuAf2LG1r9ixtaIS88ZA==
'/*!*/;### INSERT INTO `test_user`.`cs_tag`### SET###   @1=2###   @2='csdn'###   @3=1###   @4=1511754749###   @5=1511754749# at 411
Nach dem Login kopieren

Sie müssen bei der Verwendung von mysqlbinlog auf einige Dinge achten

1. Überprüfen Sie nicht die Binlog-Datei, die gerade geschrieben wird. Sie können die Datei in eine andere kopieren Verzeichnis zuerst und dann ausführen.

2. Fügen Sie keinen Force-Parameter hinzu, um den Zugriff zu erzwingen.

3. Wenn das Binlog-Format der Zeilenmodus ist, fügen Sie bitte den Parameter -vv hinzu.

In diesem Artikel wird die Verwendung von MySQL-Binlog erläutert. Weitere Informationen finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Erklären Sie den relevanten Inhalt von PHP mithilfe des Token-Bucket-Algorithmus, um eine Flusskontrolle basierend auf Redis zu implementieren

So übergeben Sie PHP, um eine QR-Code-Klasse mit Logo zu erstellen

Detaillierte Erläuterung der zugehörigen Methoden von MySQL, um Tabellenpartitionen neu zu erstellen und Daten beizubehalten

Das obige ist der detaillierte Inhalt vonErklären Sie, wie Sie MySQL-Binlog verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage