3

我想编写一个服务来跟踪 mysql bin 日志以获取有关数据库更改的通知。

是否有一个开源库可以读取和解析 ROW 格式的 mysql bin 日志?

4

5 回答 5

5

使用mysqlbinlog.

服务器的二进制日志由包含描述数据库内容修改的“事件”的文件组成。服务器以二进制格式写入这些文件。要以文本格式显示它们的内容,请使用 mysqlbinlog 实用程序。您还可以使用 mysqlbinlog 在复制设置中显示从服务器写入的中继日志文件的内容,因为中继日志与二进制日志具有相同的格式。

来源:https ://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.html

于 2015-06-03T01:37:35.633 回答
1

我用这个:https ://github.com/alibaba/canal 。

它是用 Java 编写的,并且在 conf 文件中进行了一些更改,您已准备好开始,内部细节已为您处理好。

文档是中文的。但是代码结构很简单,conf 文件的变量名是不言自明的,所以通过一些努力,你也许能够弄清楚:)

于 2019-08-27T07:12:41.453 回答
0

来自 github 的两个用 java 编写的项目:mysql-binlog-connector-javamysql-binlog-connector-java可以帮助您解析 mysql binlog。

于 2021-01-13T01:22:30.867 回答
0

您可以使用以下命令读取 bin-log 文件:

read -p "Enter the Log File Name : " logfilename; mysqlbinlog $logfilename | grep -i ^use | sort | uniq -c | sort -rn
于 2019-04-02T06:15:03.460 回答
0

你可以使用 https://github.com/monothorn/mysql-parser 它基于python中的sqlparse。由于您启用了 binlog 行格式,您可以查看 https://github.com/noplay/python-mysql-replication

于 2018-10-19T15:45:09.530 回答