一、Windows下开启MySQL binLog日志
首先要开启MySQL的BinLog 管理
show variables like '%log_bin%';
如果发现log_bin是OFF,打开mysql文件夹下面的my.ini,修改一下
在 [mysqld] 下面加
# 开启bin-log
log-bin=mysql-bin # 开启binlog功能
binlog-format=ROW # 设置binlog格式
server_id=1 # 设置服务ID号
保存之后重启服务
二、java代码实现
pom引入jar
<!--mysql监听-->
<dependency>
<groupId>com.github.shyiko</groupId>
<artifactId>mysql-binlog-connector-java</artifactId>
<version>0.21.0</version>
</dependency>
java代码
代码逻辑
监听表一定要有完整性标识字段,否则无法实现(业务数据会产生完整性标识,用于比对数据)
业务上删除必须是逻辑删除,物理删除都要被监听
package com.dahua.data.xdjaencrypt.business.controller;
import com.github.shyiko.mysql.binlog.BinaryLogClient;
import com.github.shyiko.mysql.binlog.event.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* mysql bin log 日志监听
*/
@Component
@Slf4j
public class MySQLBinaryLogConfig {
//数据库表,需要监听的表
private static