docker 搭建canal
准备
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
1
2
3
4
注意:针对阿里云 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'@'%';
FLUSH PRIVILEGES;
1
2
3
4
拉取镜像
docker pull canal/canal-server:v1.1.6
1
第一次运行镜像
docker run -itd -h 0 --name=cs --net=host -m 4096m canal/canal-server:v1.1.6;
1
复制配置到宿主机,并修改配置文件
docker cp cs:/home/admin/canal-server ~/data/canal-server;
canal.serverMode = rabbitMQ
rabbitmq.host = 127.0.0.1
rabbitmq.virtual.host = /
rabbitmq.exchange = canal_exchange
rabbitmq.username = admin
rabbitmq.password = admin
rabbitmq.deliveryMode =
canal.instance.master.address=127.0.0.1:3306
canal.instance.dbUsername=root
canal.instance.dbPassword=root
canal.mq.topic=canal_key
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
删除原有的镜像,重新跑带映射配置的镜像
docker rm -f cs;
docker stop cs; docker rm cs;
docker run -itd -h 0 --name=cs --net=host -v ~/data/canal-server:/home/admin/canal-server -m 4096m canal/canal-server:v1.1.6;
1
2
3
4