Docker,安装部署 canal

Docker,安装部署 canal

不懂有些操作的可以看我的博客docker系列。废话就不多说了,比较简单。
按照我的步骤来,出了问题,喷我。

拉取镜像

[root@localhost home] docker pull canal/canal-server:latest

在目录创建文件目录

说明1:不在做 映射,忽略

查看 Mysql 是否 开启 binlog

show variables like 'binlog_format%'

Docker,安装部署 canal_第1张图片
如果不是 ROW ,在 Mysql ,my.ini 文件 写入 以下配置

[mysqld]

#开启binlog
log-bin = mysql-bin

#选择 row 模式
binlog-format = ROW 

#配置 mysql replaction 需要定义,不能和 canal 的 slaveId 重
server_id = 1 

如果 是 Mysql 8 没有 my.ini 文件 ,自行创建文件 ,写入配置,重启Mysql

数据库 创建 canal 用户

#创建用户
CREATE USER canal IDENTIFIED BY 'canal';

#赋权
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';    

#刷新
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;    
FLUSH PRIVILEGES;

运行容器

这里的命令就不多做解释了,不懂的可以看看我前面的docker 系列博客,懒,不想多打字

[root@localhost home] docker run -d -p 11111:11111  --name canal canal/canal-server 

进入容器修改配置文件

[root@localhost home] docker exec -it canal /bin/bash

vi /home/admin/canal-server/conf/canal.properties

在这里插入图片描述

[root@b0454894a51e admin]# cd /canal-server/conf
[root@b0454894a51e admin]# vi canal.properties

添加 canal.id = 23 不能跟 数据库的 server_id 重复

Docker,安装部署 canal_第2张图片
修改 canal.destinations = example1
canal.auto.scan = false

如果 出现启动异常:example1 should start first

就是没有 更改 canal.destinations = example1

这是 canal 源码的一个问题,请自行看 https://github.com/alibaba/canal/issues/468
Docker,安装部署 canal_第3张图片

创建 example1 目录,然后将 instance.properties 复制过去,再编辑文件

 [root@b0454894a51e example]#  cd example
 [root@b0454894a51e example]#  mkdir conf/example1
 [root@b0454894a51e example]#  cp conf/example/instance.properties conf/example1
 [root@b0454894a51e example]# vim conf/example1/instance.properties

修改 address 为你自己的数据库地址

Docker,安装部署 canal_第4张图片

修改 过滤规则 canal.instance.filter.regex= [你要监控的数据库名称]\\..* ,默认是监控全库

Docker,安装部署 canal_第5张图片

修改完成 退出 容器 重启容器

[root@b0454894a51e example]#  exit
 
[root@localhost home]#  docker restart canal

你可能感兴趣的:(Docker,docker,容器,mysql,canal)