canal源码仓库:https://github.com/alibaba/canal
博主使用的是canal 1.5.5版本 MySQL 5.7.32 JDK:1.8
canal各个版本:https://github.com/alibaba/canal/releases
canal-adapter下载 canal-admin 下载 canal-deployer 下载
上传到目标服务器对应目录下
解压压缩包
[root@VM-0-9-centos canal-admin]# tar -zxvf canal.admin-1.1.5.tar.gz
[root@VM-0-9-centos canal-deployer]# tar -zxvf canal.deployer-1.1.5.tar.gz
[root@VM-0-9-centos canal-adapter]# tar -zxvf canal.adapter-1.1.5.tar.gz
canal-admin 配置
新建canal_manager数据库,用户名密码:canal
初始化sql路径:canal-admin/conf/canal_manager.sql
启动canal-admin
sh bin/startup.sh
官方部署admin方式:https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart
canal-deployer配置
sh bin/startup.sh
在canal-admin页面Server 管理 新增

Instance 管理 新增
名称:example 所属集群选择刚新建的,载入模板即可
canal-adapter配置 rdb模式
去掉application.yml 以下注释

cd ./conf/rdb
修改mytest_user.yml
#dataSourceKey: defaultDS
#destination: example
#groupId: g1
#outerAdapterKey: mysql1
#concurrent: true
#dbMapping:
# database: mytest
# table: user
# targetTable: mytest2.user
# targetPk:
# id: id
# mapAll: true
# targetColumns:
# id:
# name:
# role_id:
# c_time:
# test1:
# etlCondition: "where c_time>={}"
# commitBatch: 3000 # 批量提交的大小
dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: mysql1
concurrent: true
updateChangeColumns: true
dbMapping:
database: mytest
table: rdb_test
targetDb: mytest2
targetTable: rdb_test
targetPk:
id: id
mapAll: true
readBatch: 1
commitBatch: 1 # 批量提交的大小
sh bin/startup.sh
官方配置方式:https://github.com/alibaba/canal/wiki/Sync-RDB
开启mysql binlog日志
修改 /etc/my.cnf
# 随机指定一个不能和其他集群中机器重名的字符串,配置 MySQL replaction 需要定
#义,不要和 canal 的 slaveId 重复
server-id=223
#配置binlog日志目录,配置后会自动开启binlog日志,并写入该目录
log-bin=/var/lib/mysql/mysql-bin
# 选择 ROW 模式
binlog-format=ROW


检查同步即可