这里将告诉您mysql整合canal读取binlog日志,具体实现方法:
canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。
1.mysql前期准备(开启binlog):
对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下
[mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
注意:针对阿里云 RDS for MySQL , 默认打开了 binlog , 并且账号默认具有 binlog dump 权限 , 不需要任何权限或者 binlog 设置,可以直接跳过这一步
授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant
CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ; FLUSH PRIVILEGES;
2.下载canal:
https://github.com/alibaba/canal/releases
3.window下启动:
bin/startup.bat 启动
启动时遇到如下问题:

最后查看issue找到解决方式:
https://github.com/alibaba/canal/issues/2152
之后再次启动如下:


启动成功。
4.通过提供的example测试是否生效:

启动之后修改本机数据库任意一个表分别触发
增加:

修改:

删除:

mysql整合canal读取binlog日志就为您介绍到这里,感谢您关注懒咪学编程c.lanmit.com.
本文地址:https://c.lanmit.com/shujuku/qita/14163.html