为binlog设置监听事件,但是开启后没有任何反应,也不报错。半解决,可参考。
程序员文章站
2024-01-26 21:58:04
...
监听方法:
/*监听*/
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”) ;
这个是相当于监听脱机文件的改变状态。
上一篇: 小程序数据量过大问题