监听方法:
/*监听*/
BinaryLogClient client = new BinaryLogClient("localhost", 3306, "root", "123456");
EventDeserializer eventDeserializer = new EventDeserializer();
eventDeserializer.setCompatibilityMode(
EventDeserializer.CompatibilityMode.DATE_AND_TIME_AS_LONG,
EventDeserializer.CompatibilityMode.CHAR_AND_BINARY_AS_BYTE_ARRAY
);
client.setEventDeserializer(eventDeserializer);
client.setBinlogFilename("D:\\mysql\\mysql-8.0.13-winx64\\log\\mysql-bin.000001") ;
client.registerEventListener(new BinaryLogClient.EventListener() {
@Override
public void onEvent(Event event) {
System.out.println(event.toString());
}
});
client.connect();
监听事件是打印event,但是运行后没有反应:
解决办法:
没有为mysql配置server-id,在my.ini中配置即可,id可随意。
配置后一部分人应该解决了,另一部分没解决的就把指定文件名取消了把,直接监听master的binlog即可成功监听。
也就是去了 client.setBinlogFilename(“D:\mysql\mysql-8.0.13-winx64\log\mysql-bin.000001”) ;
这个是相当于监听脱机文件的改变状态。