Maven 配置
<dependency>
<groupId>com.github.shyiko</groupId>
<artifactId>mysql-binlog-connector-java</artifactId>
<version>0.13.0</version>
</dependency>
Java文件
import com.github.shyiko.mysql.binlog.BinaryLogFileReader;
import com.github.shyiko.mysql.binlog.event.Event;
import com.github.shyiko.mysql.binlog.event.deserialization.ChecksumType;
import com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer;
import java.io.File;
import java.io.IOException;
class Sample {
public static void main(String[] args) throws IOException {
String filePath="D:\\DATA\\mysql-bin.000987";
File binlogFile = new File(filePath);
EventDeserializer eventDeserializer = new EventDeserializer();
eventDeserializer.setChecksumType(ChecksumType.CRC32);
BinaryLogFileReader reader = new BinaryLogFileReader(binlogFile, eventDeserializer);
try {
for (Event event; (event = reader.readEvent()) != null; ) {
System.out.println(event.toString());
}
} finally {
reader.close();
}
}
}
执行日志
Event{header=EventHeaderV4{timestamp=1501376071000, eventType=TABLE_MAP, serverId=3366725048, headerLength=19, dataLength=43, nextPosition=494953, flags=0}, data=TableMapEventData{tableId=72, database='mysql', table='ha_health_check', columnTypes=8, -2, columnMetadata=0, 65027, columnNullability={0}}}
Event{header=EventHeaderV4{timestamp=1501376071000, eventType=UPDATE_ROWS, serverId=3366725048, headerLength=19, dataLength=37, nextPosition=495009, flags=0}, data=UpdateRowsEventData{tableId=72, includedColumnsBeforeUpdate={0, 1}, includedColumns={0, 1}, rows=[
{before=[1501376059857, m], after=[1501376071917, m]}
]}}
原文:https://ask.hellobi.com/blog/cimen/9133