如何读取mysql binlog

时间:2015-06-03 00:50:17

标签: mysql mysqlbinlog

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

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

5 个答案:

答案 0 :(得分:1)

使用mysqlbinlog

  

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

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

答案 1 :(得分:0)

您可以使用     https://github.com/monothorn/mysql-parser 它基于python中的sqlparse。 由于您已启用Binlog行格式,因此您可以签出     https://github.com/noplay/python-mysql-replication

答案 2 :(得分:0)

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

read -p "Enter the Log File Name : " logfilename; mysqlbinlog $logfilename | grep -i ^use | sort | uniq -c | sort -rn

答案 3 :(得分:0)

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

它是用Java编写的,并且在conf文件中进行了一些更改,您可以开始使用,内部的细节已经为您服务。

文档为中文。但是代码结构简单明了,并且conf文件的变量名很容易说明,因此您可以通过一些努力来弄清楚:)

答案 4 :(得分:0)

github上用java写的两个项目:mysql-binlog-connector-javamysql-binlog-connector-java可以帮你解析mysql binlog。