canal https://blog.csdn.net/NeverFG/article/details/124053342 https://github.com/alibaba/canal/releases/tag/canal-1.1.6 修改mysql配置 cd /etc vi my.cnf log-bin=mysql-bin server-id=12345 #修改 canal.properties canal.id=1001 cd example/ #修改 instance.properties canal.instance.master.address=127.0.0.1:3306 canal.instance.dbUsername=canal canal.instance.dbPassword=Canal202! canal.instance.filter.regex=.*\\..* mysql创建用户 create user canal@'localhost' IDENTIFIED by 'Canal202!'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'localhost'; FLUSH PRIVILEGES; 我们这里使用的一个开源的项目,它实现了springboot与canal的集成。比原生的canal更加优雅。 https://github.com/chenqian56131/spring-boot-starter-canal 使用前需要将starter-canal安装到本地仓库(把提供的依赖拷贝到本地仓库即可) 我们可以参照它提供的canal-test,进行代码实现。 @EnableCanalClient canal.client.instances.example.host= 192.168.183.129 canal.client.instances.example.port= 11111 @CanalEventListener public class BusinessListener { /** * 设置监控点,监控的目标,对应库下的具体表 * @param entryType * @param rowData */ @ListenPoint(schema = "xmh",table = {"t_user"}) public void adUpdate(CanalEntry.EntryType entryType, CanalEntry.RowData rowData){ System.out.println("tb_ad表中的数据发生变化"); System.out.println("变化前的数据"); rowData.getBeforeColumnsList().forEach((c)-> System.out.println(c.getName()+":"+c.getValue())); System.out.println("变化后的数据"); rowData.getAfterColumnsList().forEach((c)-> System.out.println(c.getName()+":"+c.getValue())); } }
标签:canal,binlog,System,instance,rowData,println,日志,out From: https://www.cnblogs.com/xingminghui111/p/16831276.html