Cannal初体验:使用Docker安装Canal详细流程说明


Cannal安装步骤

此次安装命令皆是以管理员身份运行

1.通过docker创建一个新网络

①创建名为mysql-test的网络

docker network create mysql-test

#查询创建的网络信息
docker network ls
#查询当前网络的信息
docker network inspect mysql-test

②让mysql加入此网络

docker network connect mysql-test mysql

2.mysql相关

2.1 开启mysql主从配置

1、修改配置文件

打开mysql挂载目录下( /mydata/mysql/conf )的 my.cnf 配置文件,添加以下配置

# start binlog 
server-id=1
log-bin=/var/lib/mysql/mysql-bin
binlog-do-db=test

配置解读:
server-id :指定当前服务的id,必须指定,否则会报错
log-bin :设置binlog文件的存放地址和文件名,叫做mysql-bin,此处指定的目录前缀是mysql容器的数据存放目录,所以可以在挂载目录中看到相关的文件,命名格式是mysql-bin.000001开始慢慢叠加
binlog-do-db :指定针对哪个数据库记录binlog的events事件,此处记录test库

2、重启mysql
docker restart mysql

2.2 新建canal用户并设置权限

①创建canal专用用户,进行权限隔离

create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%' identified by 'canal';
FLUSH PRIVILEGES;

②效果如下
创建canal数据库用户

3.拉取Cannal镜像

## 拉取版本为v1.1.5的canal
docker pull canal/canal-server:v1.1.5

4.运行Canal

4.1、启动命令

docker run -p 11111:11111 --name canal \
-e canal.destinations=test \
-e canal.instance.master.address=mysql:3306  \
-e canal.instance.dbUsername=canal  \
-e canal.instance.dbPassword=canal  \
-e canal.instance.connectionCharset=UTF-8 \
-e canal.instance.tsdb.enable=true \
-e canal.instance.gtidon=false  \
-e canal.instance.filter.regex=test\\..* \
--network mysql-test \
--restart=always \
-d canal/canal-server:v1.1.5

启动命令说明:

4.2、命令解读

-p :指定端口
-e :指定配置文件的配置信息。此处主要有两个配置文件在起作用,分别是 canal.propertiesinstance.properties 这两个配置文件,前缀是 canal. 的修改就是 canal.properties 这个配置文件的,前缀是 canal.instance 修改的就是 instance.properties 这个配置文件的
canal.destinations:指定了实例的名称,决定了instance实例的配置文件存放目录
canal.instance.master.address :指定了mysql的地址,正常需要ip,此处由于会将mysql和canal放在一个网络中,所以可以直接使用mysql替代
canal.instance.filter.regex:此处指定只过滤test这个数据库的binlog数据
network mysql-test:指定网络是步骤1创建的网络
restart=always :将canal设置为docker启动时自启,可要可不要
-d :指定步骤2拉取的镜像名称以及版本

4.3、查看容器状态

# 查看启动日志
docker logs canal
# 查看目前运行容器
docker ps
# 启动失败时查看容器状态
docker ps -a

4.4、相关配置调整(可做可不做)

①将canal配置文件进行拷贝

# canal.properties & instance.properties
# 注意,instance.properties文件是在canal.destinations这个配置指定的目录作为前缀下面

docker cp canal:/home/admin/canal-server/conf/canal.properties /mydata/canal/conf
docker cp canal:/home/admin/canal-server/conf/test/instance.properties /mydata/canal/conf

②根据个人需要修改配置之后,将原有的canal容器停止并删除,然后重新启动的时候使用-v进行文件绑定,进行文件绑定时务必确保文件是存在的。

# 停止并删除容器
docker stop canal
docker rm canal

#重新运行并指定
docker run -p 11111:11111 --name canal \
-e canal.destinations=test \
-e canal.instance.master.address=mysql:3306  \
-e canal.instance.dbUsername=canal  \
-e canal.instance.dbPassword=canal  \
-e canal.instance.connectionCharset=UTF-8 \
-e canal.instance.tsdb.enable=true \
-e canal.instance.gtidon=false  \
-e canal.instance.filter.regex=test\\..* \
-v /mydata/canal/conf/canal.properties:/home/admin/canal-server/conf/canal.properties \
-v /mydata/canal/conf/instance.properties:/home/admin/canal-server/conf/test/instance.properties \
--network mysql-test \
--restart=always \
-d canal/canal-server:v1.1.5
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Docker安装Canal,可以按照以下步骤进行操作: 1. 首先,确保已经安装DockerDocker Compose。如果没有,请先安装它们。 2. 创建一个新的文件夹,用于存放Canal的配置文件和数据。例如,可以在命令行中运行以下命令来创建一个名为`canal`的文件夹: ``` mkdir canal ``` 3. 在`canal`文件夹中创建一个名为`docker-compose.yml`的文件,并将以下内容复制粘贴到该文件中: ```yaml version: '3' services: canal-server: image: canal/canal-server:v1.1.5 ports: - 11111:11111 volumes: - ./config:/home/admin/canal-server/conf - ./logs:/home/admin/canal-server/logs - ./data:/home/admin/canal-server/data ``` 4. 在`canal`文件夹中创建一个名为`instance.properties`的文件,并将以下内容复制粘贴到该文件中: ``` canal.instance.master.address=127.0.0.1:3306 canal.instance.dbUsername=your_username canal.instance.dbPassword=your_password canal.instance.connectionCharset=UTF-8 ``` 将`your_username`和`your_password`替换为实际的MySQL数据库用户名和密码。 5. 在命令行中切换到`canal`文件夹,并运行以下命令启动Canal服务: ``` docker-compose up -d ``` 这将启动Canal服务,并将其绑定到主机的`11111`端口。 现在,Canal已经在Docker安装并运行了。你可以通过访问`127.0.0.1:11111`来验证它是否正常工作。请注意,你需要在`instance.properties`文件中配置正确的MySQL数据库连接信息才能使Canal与数据库进行通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jz_Stu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值