当前位置: 首页 > news >正文

【canal+mysql+example+数据验证测试】

前言

Canal 是阿里巴巴开源的一个基于 MySQL 数据库增量日志(binlog)解析的组件,常用于数据同步、缓存更新、大数据实时处理等场景。

canal.adapter #全组件安装包
canal.admin #管理端安装包
canal.deployer #server安装包
canal.example #客户端示例程序

现测试环境:服务器1台
docker起了两个mysql
数据库版本:8.0.26
mysql8 : 3306 -->🔺 binlog --> canal server --> <kafka/rabbitmq>? --> mysql9: 3307


一、数据库设置

注:必须保证数据库的表结构一致

1、mysql8开启binlog日志,mysql9不需要

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW

2、创建canal链接用户、授权

CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

二、canal下载、配置

1、下载解压

root@confluence:/u01/canal/canal-deployer# vim conf/example/instance.properties # MySQL 地址
canal.instance.master.address=127.0.0.1:3306
# 用户名密码
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
# 数据库过滤(可选)
canal.instance.defaultDatabaseName=test

kafka(备选)

## conf/canal.propertiescanal.serverMode = kafka
kafka.bootstrap.servers = kafka-server:9092
kafka.topic = canal

2、启服务

./bin/startup.sh 

三、构建jar包、使用canal同步数据

1、下载源码包、解压

https://github.com/alibaba/canal/archive/refs/tags/canal-1.1.8.tar.gz

2、切换目录、构建pom.xml

root@confluence:/u01/canal/canal-client/canal-canal-1.1.8/example#
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- 使用 Canal 官方稳定版本 --><parent><groupId>com.alibaba.otter</groupId><artifactId>canal</artifactId><version>1.1.8</version><relativePath>../pom.xml</relativePath></parent><groupId>com.example</groupId><artifactId>canal-client-demo</artifactId><packaging>jar</packaging><name>Canal Client Demo for MySQL Sync</name><!-- 项目依赖 --><dependencies><!-- Canal Client --><dependency><groupId>com.alibaba.otter</groupId><artifactId>canal.client</artifactId><version>${project.version}</version></dependency><!-- Canal Protocol --><dependency><groupId>com.alibaba.otter</groupId><artifactId>canal.protocol</artifactId><version>${project.version}</version></dependency><!-- MySQL JDBC Driver --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><!-- 测试依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies><!-- 构建配置 --><build><plugins><!-- 编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!-- 构建可执行 JAR 并打包所有依赖 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>
http://www.lryc.cn/news/588985.html

相关文章:

  • Python 内置函数random
  • 行为模式-状态模式
  • 小智完整MCP交互流程(以调节音量为例)
  • 网络安全职业指南:探索网络安全领域的各种角色
  • 使用llama-factory进行qwen3模型微调
  • elasticsearch 下载/安装
  • MaxKB使用笔记【持续ing】
  • python+selenium UI自动化初探
  • JAVA高级第一章 集合框架和泛型(一)
  • Ubuntu18.04 系统重装记录
  • 写作词汇积累(A):自洽、自恰、恰如其分、恰当
  • MQ2烟雾传感器模块(第九天)
  • C++学习笔记五
  • 《时间简史》:窥探宇宙的奥秘
  • IOS 18下openURL 失效问题
  • 032_API参考文档
  • 前端面试专栏-工程化:25.项目亮点与技术难点梳理
  • 区块链的三种共识机制——PoW、PoS和DPoS原理
  • 数据库第二次作业
  • 【Python练习】044. 编写一个函数,实现快速排序算法
  • 本地电脑安装Dify|内网穿透到公网
  • 开源AI应用开发平台Dify系列(一)
  • YOLO融合CFFormer中的FeatureCorrection_s2c模块
  • 多租户SaaS系统中设计安全便捷的跨租户流程共享
  • 遥感数据与作物生长模型同化及在作物长势监测与估产中的应用
  • 弗兰肯斯坦式的人工智能与GTM策略的崩溃
  • 运维效率提升利器:grep、sed、awk详解与实战练习指南
  • (LeetCode 面试经典 150 题) 383. 赎金信 (哈希表)
  • AR眼镜:重塑医学教育,开启智能教学新时代
  • 配置使用SSH与VScode进行连接