canal(1.1.8) 部署

Canal1.1.8数据同步 无需自己开发代码 本文介绍了Canal 1.1.8版本与MySQL 8.0+的配置部署过程。 阅读详情

一、什么是canal

canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。可以简单地把canal理解为一个用来同步增量数据的一个工具。
官网地址: alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件
在这里插入图片描述
canal的工作原理就是把自己伪装成MySQL slave,模拟MySQL slave的交互协议向MySQL Mater发送 dump协议,MySQL mater收到canal发送过来的dump请求,开始推送binary log给canal,然后canal解析binary log,再发送到存储目的地,比如MySQL,Kafka,Elastic Search等等。

二、canal能做什么

canal的数据同步不是全量的,而是增量。基于binary log增量订阅和消费,canal可以做:
数据库镜像
数据库实时备份
索引构建和实时维护(拆分异构索引、倒排索引等)
业务cache(缓存)刷新
带业务逻辑的增量数据处理

三、canal部署

3.1 MySQL的准备

3.1.1 创建数据库

CREATE DATABASE db01;
use db01;

3.1.2 创建表

CREATE TABLE user_info(
	`id` VARCHAR(255),
	`name` VARCHAR(255),
	`sex` VARCHAR(255)
);

3.1.2 修改配置文件开启Binlog

vi /etc/my.cnf
log-bin=binlog
binlog-format=row

在这里插入图片描述

3.1.4 重启MySQL使配置生效

systemctl restart mysqld

3.1.5 赋权限(注意!!!是在mysql主库中进行创建)

在MySQL中执行

# canal和mysql的端口不一致
-- 登录 MySQL
mysql -hxx.xx.xx.xxuroot -pxxxxxx
-- 创建用户并授权
CREATE USER 'canal'@'xx.xx.xx.xx' IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'xx.xx.xx.xx';
FLUSH PRIVILEGES;

# canal和mysql的端口一致
-- set global validate_password_length=4;
-- set global validate_password_policy=0;
-- GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal' ;
-- flush privileges;

3.2 下载并解压Jar包

下载地址: Releases · alibaba/canal
在这里插入图片描述
将下载的压缩包上传至虚拟机,解压到/opt/module/canal包下
!!!注意:canal解压后是分散的,我们在指定解压目录的时候需要将canal指定上

sudo mkdir /opt/module/canal
sudo tar -zxvf canal.deployer-1.1.8.tar.gz -C /opt/module/canal

3.3 修改canal.properties的配置

cd /opt/module/canal/conf

vi canal.properties

修改以下配置
在这里插入图片描述
在这里插入图片描述

说明:这个文件是canal的基本通用配置,canal端口号默认就是11111,修改canal的输出model,默认tcp,改为输出到kafka

3.4 修改instance.properties

我们这里只读取一个MySQL数据,所以只有一个实例,这个实例的配置文件在conf/example目录下

cd /opt/module/canal/example

vi instance.properties

配置MySQL服务器地址
在这里插入图片描述
配置连接MySQL的用户名和密码,默认就是我们前面授权的canal
在这里插入图片描述
修改instance.properties输出到Kafka的主题以及分区数
在这里插入图片描述
启动Canal

cd /opt/module/canal/

./bin/startup.sh
#相应停止的命名如下:
# 停止Canal
./bin/stop.sh

# 清理可能存在的残留进程
pkill -f canal

# 启动Canal
./bin/startup.sh

3.5如果没有安装jdk:

3.5.1. 检查是否安装了 Java

首先,检查你的系统中是否已经安装了 Java。运行以下命令:

java -version

如果系统中没有安装 Java,你会看到类似以下的输出:
-bash: java: command not found

3.5.2. 安装 Java

如果系统中没有安装 Java,你需要安装它。你可以使用 YUM 安装 OpenJDK(Java Development Kit)。运行以下命令:

sudo yum install java-1.8.0-openjdk-devel

安装完成后,再次运行 java -version 检查是否安装成功:

java -version

你应该看到类似以下的输出:

openjdk version “1.8.0_XXX”
OpenJDK Runtime Environment (build 1.8.0_XXX-bXX)
OpenJDK 64-Bit Server VM (build 25.XXX-bXX, mixed mode)

3.5.3. 设置 JAVA_HOME 环境变量

即使 Java 已经安装, startup.sh 脚本可能仍然需要 JAVA_HOME 环境变量。你需要设置 JAVA_HOME 并将其添加到 PATH 中。
首先,找到 Java 的安装路径。通常,OpenJDK 安装在 /usr/lib/jvm/java-1.8.0-openjdk 。你可以通过以下命令确认:

ls -d /usr/lib/jvm/java-1.8.0-openjdk

然后,设置 JAVA_HOME 环境变量。你可以将以下内容添加到你的 ~/.bashrc 或 ~/.bash_profile 文件中:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

运行以下命令使更改生效:

source ~/.bashrc

3.5.4. 验证 Java 环境变量

运行以下命令验证 JAVA_HOME 和 PATH 是否设置正确:

echo $JAVA_HOME
echo $PATH
java -version

你应该看到 JAVA_HOME 指向正确的 Java 安装路径,并且 java -version 命令能够正常运行。

3.5.5. 重新运行 startup.sh

现在,重新运行 startup.sh 脚本:

./bin/startup.sh

在这里插入图片描述

看到CanalLauncher你表示启动成功,同时会创建canal_test主题
启动Kafka消费客户端测试,查看消费情况

./bin/kafka-console-consumer.sh --bootstrap-server xx.xx.xx.xx:9092 --topic canal_test

#若kafka没有监测到数据,查看canal日志报错

2025-07-17 15:56:18.797 [main] ERROR c.a.o.c.common.zookeeper.running.ServerRunningMonitor - start failed
com.alibaba.otter.canal.meta.exception.CanalMetaManagerException: dir[../conf] can not read/write
2025-07-17 15:56:18.803 [main] ERROR c.a.o.c.common.zookeeper.running.ServerRunningMonitor - processActiveExit failed
java.lang.NullPointerException: null
	at com.alibaba.otter.canal.meta.FileMixedMetaManager.stop(FileMixedMetaManager.java:120)
	at com.alibaba.otter.canal.instance.core.AbstractCanalInstance.stop(AbstractCanalInstance.java:122)
	at com.alibaba.otter.canal.server.embedded.CanalServerWithEmbedded.stop(CanalServerWithEmbedded.java:151)
	at com.alibaba.otter.canal.deployer.CanalController$1.processActiveExit(CanalController.java:181)
	at com.alibaba.otter.canal.common.zookeeper.running.ServerRunningMonitor.processActiveExit(ServerRunningMonitor.java:254)
	at com.alibaba.otter.canal.common.zookeeper.running.ServerRunningMonitor.stop(ServerRunningMonitor.java:133)
	at com.alibaba.otter.canal.common.zookeeper.running.ServerRunningMonitor.start(ServerRunningMonitor.java:105)
	at com.alibaba.otter.canal.deployer.CanalController.start(CanalController.java:545)
	at com.alibaba.otter.canal.deployer.CanalStarter.start(CanalStarter.java:88)
	at com.alibaba.otter.canal.deployer.CanalLauncher.main(CanalLauncher.java:128)
2025-07-17 15:56:18.805 [main] INFO  com.alibaba.otter.canal.deployer.CanalStarter - ## the canal server is running now ......

#执行下述命令

sudo chown -R bigdata:bigdata .
sudo chmod -R 755 conf
ls -ld conf

#drwxr-xr-x. 5 bigdata bigdata 123 7月 17 15:53 conf

./bin/stop.sh

rm -f conf/example/meta.dat
rm -f conf/example/*.tmp

./bin/startup.sh

向MySQL中插入数据后查看消费者控制台
这里是在Navicat中插入的数据进行测试

INSERT INTO user_info VALUES('1001','zhangsan','male'),('1002','lisi','female');

插入成功之后,kafka的消费者控制台有如下的输出打印
在这里插入图片描述

搭建ElasticSearch + Canal同步MySQL以及Java实现搜索功能 一、安装Elastic Search 6.8 1.下载 链接: https://pan.baidu.com/s/1tKtt_XeQ9IRAJdKUAqM1Yg 提取码: 7iyx 2.部署环境配置 1)创建用户 adduser elastic 2)修改服务器配置 vi /etc/sysctl.conf 添加 vm.max_map_count = 262144 vi /etc/security/limits.conf 添加 * soft nofile 阅读详情

相关推荐

Canal——数据同步

Canal——数据同步

weixin_43241803的博客 5952

大数据同步工具Canal

目录1 什么是canal2 canal能做什么3 如何搭建canal3.1 首先有一个MySQL服务器3.2 安装canal 1 什么是canal 我们先看官网的介绍 canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 这句介绍有几个关键字:增量日志,增量数据订阅和消费。 这里我们可以简单地把canal理解为一个用来同步增量数据的一个工具。 接下来我们看一张官网提供的示意图: canal的工作原理就是把自己伪装成MySQL slave,模拟MySQL

赵广陆 7347

超详细的Canal入门,看这篇就够了!

Canal入门看这篇就够了!

yehongzhi1994的博客 22万+

canal介绍

canal主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费的一种中间件

wuyuzhou_12345的博客 6055

canal安装使用

下载# 客户端# 管理端# 服务端。

花开陌上无言语,溪水流声自悠然。 2281

避坑指南:Canal 1.1.8在Windows/Linux下的5大常见错误及解决方案

本文详细解析了Canal 1.1.8在Windows/Linux环境下的5大常见错误及解决方案,包括JDK版本陷阱、H2数据库冲突、依赖缺失、Windows特有启动错误及MySQL配置细节。通过实战经验和优化建议,帮助开发者快速避坑,提升部署效率。

weixin_29057237的博客 236

Canal安装部署详细步骤

canal安装部署

Kingsley's Blog 8199

canal-1.1.5+mysql8+kafka安装部署

环境: centos7 canal-1.1.5 mysql-8.0.2 kafka-2.1.0+cdh6.2.1 1. 简介: canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库 志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。 基于.

QYmufeng的博客 878

canal高可用集群部署,canal1.1.6实现mysql8.0数据增量/全量同步到elasticsearch7,保姆级教程

主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。canal的工作原理:1.canal模拟mysql sllave的交互协议,伪装自己为mysql salve;2.mysql master收到dump请求,开始推送binary log给 slave(也就是canal);3.canal解析binary log 对象(原始byte流),再发送到存储目的地,比如MySQL,Kafka,Elastic Search等等。canal的数据同步可以增量/全量。

qq_45132989的博客 9659

计算机视觉之ResNet

RestNet是2015年由微软团队提出的,在当时获得分类任务,目标检测,图像分割第一名。该论文的四位作者何恺明、张祥雨、任少卿和孙剑如今在人工智能领域里都是响当当的名字,当时他们都是微软亚研的一员。实验结果显示,残差网络更容易优化,并且加深网络层数有助于提高正确率。在ImageNet上使用152层的残差网络(VGG net的8倍深度,但残差网络复杂度更低)。对这些网络使用集成方法实现了3.75%的错误率。获得了ILSVRC 2015竞赛的第一名。原文链接这是一篇计算机视觉领域的经典论文。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 2万+

秦时明月6.2魔改版_从零到一部署指南_含安卓客户端配置与GM后台直通

本文详细介绍了秦时明月6.2魔改版的从零到一部署指南,包括环境准备、服务端安装、安卓客户端配置以及GM后台直通等关键步骤。特别针对安卓客户端配置和GM工具使用提供了实用技巧,帮助用户快速搭建并优化游戏服务器,确保稳定运行。

weixin_42522964的博客 317

第二章:canal-deployer canal-admin部署

本文详细介绍了Canal 1.1.8版本的MySQL实时同步标准部署方案。部署架构包含三大组件:管理后台canal-admin、服务端canal-deployer和客户端同步器canal-adapter。部署前需确保JDK8、MySQL 5.7+/8.0环境,并开启源库binlog。文章分步骤讲解了目录创建、数据库初始化、源库配置等前置工作,以及各组件配置要点,特别提供了同步客户端避坑指南(使用mysync模式替代原生RDB插件)。最后详细说明了各组件启停命令和日志查看方式,并强调需要开放的端口(8089、

Java资料站 221

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

statistics+insight+vista+power 1483

Canal1.1.8集群搭建(超详细)

本文详细介绍了使用Canal 1.1.8、Zookeeper 3.6.3、MySQL 8.0.40和PostgreSQL 14.5搭建实时数据同步集群的完整过程。主要内容包括:1)MySQL主库配置binlog;2)搭建canal-admin管理节点;3)配置Zookeeper集群;4)部署canal-deployer节点实现数据采集;5)配置canal-adapter实现MySQL到PostgreSQL的数据同步映射;6)测试动态增加表配置和集群故障转移功能。文章提供了详细的配置文件修改说明和操作步骤,确

qq_36803154的博客 1486

Vue - 详细完美解决 ElementUI MessageBox “多次“ 弹框问题,让其无论执行多少次都只弹出来一次(常见于请求拦截器多次触发弹框,导致弹出来很多个)详细示例代码,保证完美解决!

vue如何防止ElementUIMessageBox多次弹框,vueelement弹框弹出来很多次怎么办,elementvueMessageBox解决执行多次后出现多次弹框的问题,elementUI如何阻止MessageBox多次弹出来,vue+element解决多个请求同时报错,弹出多个消息框message,饿了么组件库MessageBox弹框频繁弹出解决方法,vue调用MessageBox出现多次弹框,vueelementMessageBox怎么只弹出一次,vue之axios请求

🏆 前端领域优质创作者 8196

金融监管压力测试场景生成

压力测试是一种评估金融资产或机构在极端市场条件下的表现和风险承受能力的方法。它通过模拟各种不利的市场情景,测试金融机构在这些情景下的财务状况和运营能力。压力测试的作用在于帮助金融机构识别潜在风险,评估应对策略,并制定应急预案。总结压力测试场景生成系统的开发过程和实现效果,强调其在金融监管中的重要性和应用价值。随着金融市场的发展,实时压力测试将越来越重要。未来,压力测试需要更加注重实时性和动态性,及时反映市场的变化。本文详细介绍了金融监管压力测试的重要性、核心概念、算法原理、系统架构以及实战案例。

AI天才研究院 1209

Canal Admin 1.1.5配置避坑指南:从零搭建MySQL数据同步管理后台

本文提供Canal Admin 1.1.5版本的详细部署与配置指南,重点解析核心配置文件application.yml的设置,并针对MySQL 8.0的授权、时区等常见问题进行深度排错。帮助开发者从零搭建稳定高效的数据同步管理后台,避开版本差异与配置陷阱,实现MySQL数据变更的实时捕获与同步。

gamma的博客 302

MuJoCo 入门教程(八)Model仓库

一个物理仿真器的好坏取决于它所仿真的模型,而在像 MuJoCo 这样功能强大、建模选项众多的仿真器中,很容易创建出行为与预期不符的 "坏 "模型。MuJoCo Menagerie 的目标是为社区提供一个设计精良、开箱即用的模型集。更多信息,请访问 Menagerie 资源库。

机器人控制与仿真应用 1940

Canal开启对Mysqlbinlog的监控canal-server:v1.1.6

Canal开启对Mysqlbinlog的监控canal-server:v1.1.6

ansdqasd的博客 719

COMSOL有限元仿真深度指南:为结构件添加预应变

一、什么是预应力和预应变? 我们知道,结构力学问题中,结构件在外载荷作用下产生变形响应以吸收外载荷做功带来的能量;而在结构内部,整体的受力和变形则是通过固体微元的应力与应变传递的。 对于线弹性材料来说,应力与应变的关系可以线性表达,也即 σ=Dεσ = Dεσ=Dε ;在该式中,无论固体微元的应变程度多大,弹性矩阵DDD都是一个不变的常值。而对于超弹性材料来说,应力与应变的关系则需要通过应变能密度函数WWW来表征(详细参加博客《COMSOL有限元仿真深度指南:超弹性模型有限元分析入门》)。 从上面我们也不难

忘了面孔的Batou 7172

C#串口通信上位机开发实战:轻松实现硬件控制与数据交互

摘要:本文介绍如何使用C#开发串口通信上位机应用,实现与硬件设备(如传感器、PLC等)的数据交互。文章涵盖串口通信原理、开发环境配置、功能实现(串口连接管理、数据收发、实时显示)及UI设计,重点讲解SerialPort类的应用、多线程数据接收处理和错误优化。通过Windows Forms构建直观界面,帮助开发者快速掌握工业控制和自动化系统中的串口通信技术,为物联网和智能设备开发提供实用解决方案。全文约150字。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3038

Canal基于Docker的部署操作手册

本手册详细介绍了阿里巴巴开源中间件Canal的Docker化部署方案,涵盖单机和集群两种模式。内容包含环境准备(需Docker 18.06+和MySQL binlog ROW格式配置)、镜像获取方法(官方Docker Hub镜像canal-server/canal-admin)、以及完整的部署流程。重点说明了MySQL必须开启binlog并创建专用账号(需REPLICATION权限),同时提供了Docker命令行和Compose两种部署方式。手册适用于需要快速搭建Canal测试环境的开发者或系统运维

生活,本身就是一场“知行合一”的修行。 822

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

canal-1.1.3连接hbase2.4.8

canal-1.1.3连接hbase2.4.8

weixin_66488549的博客 136

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Canal 与 mysql 实现消息同步(采用的是docker部署)

canal 1.1.6 与MYSQL 8 的版本的整合我是没有成功 mysql 8 与canal v1.1.6失败(出现的一些错误) ,mysql 5.7 和canal v:1.1.4 成功

m0_57780081的博客 984

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Canal-admin 数据订阅和消费服务

https://www.bookstack.cn/read/canal-v1.1.4/507a40ad1c1335da.md

叶子的博客 1434

m1pro通过docker部署canal

7.canal这边就基本部署完成了,更改mysql的配置即可,主要是在mysql的配置文件中添加一些配置开启二进制日志(为什么要开启二进制,自己百度一下吧这里不做教学只是记录一下自己部署的过程,踩了很多坑,按照我的一步一步部署肯定是没问题的)5.更改配置,基本都是默认的(address属性尽量写成本机的内网ip,本人在部署的时候因为写的127.0.0.1导致canal连接mysql被拒绝,排查了很久)10.可以去java端测试了 ,我截了个图代码就不贴了有需要私聊或者评论看到会回复的。

weixin_64161454的博客 493
上一篇: paimon部署(1.1.1)
下一篇: Paimon底层存储数据结构和架构原理以及tag功能和paimon入门实例
wangyutian5u
博客等级 码龄4年 94粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值