Heim > Artikel > Backend-Entwicklung > Erklären Sie, wie Sie MySQL-Binlog verwenden
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.
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.
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 |+---------------------------------+-------+
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
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
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 |+---------------------------------+--------------------------------------+
Sie können sehen, dass das Binlog aktiviert ist.
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 | +------------------+-----------+
show master status; +------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+| mysql-bin.000010 | 154 | | | | +------------------+----------+--------------+------------------+-------------------+
flush logs;
reset master;
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
Ü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
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:
So übergeben Sie PHP, um eine QR-Code-Klasse mit Logo zu erstellen
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!