## 本文章改编于阿里开源工具Canal,原版网址https://github.com/alibaba/canal
目录
当你看到这篇文章时,说明你已经对canal有所理解,其主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。废话不多说,直接上流程
1 MySQL
1.1 安装
网上资源很多,暂不做详细说明,我给自己的博客打个广告吧:https://blog.csdn.net/mochou111/article/details/98174721
1.2 账号权限
MySQL必须开启binlog,日志模式调整为row,网上资源很多,继续打广告:https://blog.csdn.net/mochou111/article/details/107249150
2 canal
2.1 下载
下载canal,访问release界面选择下载,这里我选择的是1.1.4
wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.1.4.tar.gz
值得注意的是国内网络访问github很卡慢,甚至无法访问,我决定献出我的干货,免费送大家
链接:https://pan.baidu.com/s/1rwA4ZkNdsCceAXpBIMhbbQ 提取码:bsmg 无法访问请留言告知
2.2 解压缩
mkdir /home/etl/canal
tar -zxvf canal.deployer-$version.tar.gz -C /home/etl/canal
解压后,可以看到下面四个文件夹
2.3 修改instance配置
vim ./conf/example/instance.properties
## mysql serverId
canal.instance.mysql.slaveId = 1234
#position info,需要改成自己的数据库信息
canal.instance.master.address = 127.0.0.1:3306
canal.instance.master.journal.name =
canal.instance.master.position =
canal.instance.master.timestamp =
#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
#username/password,需要改成自己的数据库信息
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
canal.instance.defaultDatabaseName =
canal.instance.connectionCharset = UTF-8
#table regex
canal.instance.filter.regex = .\*\\\\..\*
只需要对应的改动canal.instance.master.address和canal.instance.connectionCharset
2.4 修改canal配置
不做其他配置的话,只需要更改文件里下面几列
vim ./conf/canal.properties
# 数据库账号密码
canal.instance.tsdb.dbUsername = canal
canal.instance.tsdb.dbPassword = canal
# 目标
canal.destinations = example
# ip
canal.mq.servers = 127.0.0.1:6667
2.5 启动
./bin/startup.sh
2.6 查看instance 日志
cat ./logs/example/example.log
2.7 查看server的日志
cat ./logs/canal/canal.log
均无报错,则开启正常
3 问题总结
3.1 主机名未知
unknown host
修改/etc/hosts文件,把本机ip和hostname映射到hosts文件
3.2 server-id未知
sqlstate = HY000 errmsg = Misconfigured master - server_id was not set,not find position
MySQL的my.cnf文件需要添加server-id