一、目录
Ⅰ 部署搭建
1.1 环境准备
1.2 配置调整
1.3 常见报错处理
Ⅱ 避坑指南
2.1 同步的中文乱码问题
2.2 字段大小写不自动区分的问题
2.3 Load canal adapter: rdb failed问题
1.1 部署搭建——环境准备
源数据库:mysql5.7(我自己用的是docker pull过来的版本)
目标输出数据库:mysql5.7(也是docker pull过来的)
docker pull mysql:5.7
canal.deployer-1.1.5-SNAPSHOT.tar.gz(服务端版本)
wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-2/canal.deployer-1.1.5-SNAPSHOT.tar.gz
canal.adapter-1.1.5-SNAPSHOT.tar.gz(客户端版本)
wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-2/canal.adapter-1.1.5-SNAPSHOT.tar.gz
canal下好后解压(需要自己创建目标文件夹,压缩包里不自带)
tar zxvf canal.adapter-1.1.5-SNAPSHOT.tar.gz -C /data/canal-adapter-1.5
tar zxvf canal.adapter-1.1.5-SNAPSHOT.tar.gz -C /data/canal-deployer-1.5
1.2 部署搭建——配置调整
① 源数据库调整
源数据库开启binlog,先拷出docker里的配置文件
docker cp mysql:./etc/mysql/mysql.conf.d/mysqld.cnf \
/data/mysql/mysqld.cnf
vim编辑配置文件
vim /data/mysql/mysqld.cnf
追加配置
[mysqld]
#binlog数据中包含server_id,标识该数据是由那个server同步过来的
server-id = 1
#mysql向文件名前缀添加数字后缀来按顺序创建二进制日志文件如mysql-binlog.000006
log-bin = /var/lib/mysql/mysql-bin
#选择基于行的日志记录方式
binlog_format = ROW
拷回docker里
docker cp /data/mysql/mysqld.cnf \ mysql:./etc/mysql/mysql.conf.d/mysqld.cnf
重启容器
docker restart mysql