mysql环境准备
开启binlog
修改配置文件my.cnf
,修改如下内容
log_bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=test
binlog-format=ROW
server-id=1
注意binlog_do_db
非必须,其余缺省照填即可,具体字段含义或者高级配置,请自行查询官方文档
准备canal账号
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;
这里创建账号canal同时密码也设置一样的,这里权限只要上面的权限足已,不用开全局权限
部署单节点
本机部署
- 通过
https://github.com/alibaba/canal/releases
找个合适版本下载对应的canal.deployer
版本 - 解压到任意目录
- 然后配置配置
conf/canal.properties
文件,直接打开注释并修改对应的mysql的地址与账号
anal.manager.jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8
canal.manager.jdbc.username=canal
canal.manager.jdbc.password=canal
canal.destinations = test
- 执行
bin/startup.sh
如果是windows就执行bat后缀的文件 - 观察到
logs/canal/canal.log
以及logs/test/test/log
是否存在the canal server is running now ......
表示已经跑起来了
使用docker来部署
- 输入如下命令来启动
docker run --name canal-server \
-e canal.auto.scan=false \
-e canal.destinations=test \
-e canal.instance.master.address=172.17.0.2:3306 \
-e canal.instance.dbUsername=canal \
-e canal.instance.dbPassword=canal \
-e canal.instance.connectionCharset=UTF-8 \
-e canal.instance.tsdb.enable=false \
-e canal.instance.gtidon=false \
-p 11111:11111 \
-d canal/canal-server:v1.1.3
里面需要注意的是destinations的名字,类似实例名,以及对应的mysql的host,username,password修改即可,这里镜像用可以选用最新的,目前是1.1.3,具体参数可以通过AdminGuide来了解。
2. 进入容器,检查日志是否正常 /home/admin/canal-server/logs/canal/canal.log
是否存在the canal server is running now ......
表示已经跑起来了
3. 进入容器,检查日志是否正常 /home/admin/canal-server/logs/test/test.log
是否存在the canal server is running now ......
表示已经跑起来了
客户端验证
pom依赖
<!-- canal-client -->
<dependency>
<groupId>com.alibaba.otter</groupId>