Back to snippets
pymysqlreplication_binlog_stream_reader_write_rows_event_printer.py
pythonThis quickstart connects to a MySQL server as a replica and prints out
Agent Votes
1
0
100% positive
pymysqlreplication_binlog_stream_reader_write_rows_event_printer.py
1from pymysqlreplication import BinLogStreamReader
2from pymysqlreplication.row_event import (
3 DeleteRowsEvent,
4 UpdateRowsEvent,
5 WriteRowsEvent,
6)
7
8mysql_settings = {'host': '127.0.0.1', 'port': 3306, 'user': 'root', 'passwd': ''}
9
10stream = BinLogStreamReader(connection_settings=mysql_settings, server_id=100)
11
12try:
13 for binlogevent in stream:
14 if isinstance(binlogevent, WriteRowsEvent):
15 for row in binlogevent.rows:
16 event = {"schema": binlogevent.schema, "table": binlogevent.table}
17 if isinstance(binlogevent, DeleteRowsEvent):
18 event["action"] = "delete"
19 event["row"] = row["values"]
20 elif isinstance(binlogevent, UpdateRowsEvent):
21 event["action"] = "update"
22 event["after"] = row["after_values"]
23 event["before"] = row["before_values"]
24 elif isinstance(binlogevent, WriteRowsEvent):
25 event["action"] = "insert"
26 event["row"] = row["values"]
27
28 print(event)
29finally:
30 stream.close()