canal由来及相关介绍
需要了解canal框架介绍,安装及源码请参考wiki;基本安装过程及demo,官方git上都介绍的很清楚,强烈建议阅读git上相关介绍。
canal部署前Mysql相关设定
- 对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
- : 创建canal账号
容器启动mysql,需要进入容器内部设置(docker exec -it mysql bash)
自建是直接执行命令
mysql -uroot -proot
#创建账号(账号:canal;密码:canal)
CREATE USER canal IDENTIFIED BY 'canal';
#授予权限
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
#刷新并应用权限
FLUSH PRIVILEGES;
docker-compose部署canal
基于已有docker,docker-compose环境;
docker-compose.yml文件如下:
version: '2'
services:
canal-server:
image: canal/canal-server:v1.1.3
container_name: canal-server
ports:
- 11111:11111
environment:
- canal.instance.mysql.slaveId=12
- canal.auto.scan=false
- canal.destinations=test