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

Canal 主从同步

Canal 主从同步的核心流程是「开启 MySQL Binlog → 配置 Canal(Admin + Deployer)→ 搭建监听服务」

一、前期准备:下载与环境依赖

下载 Canal 组件:从 GitHub Releases 下载 canal.admin-1.1.8 和 canal.deployer-1.1.8 版本。
依赖环境:确保已安装 MySQL(5.7+ 或 8.0+)、JDK 1.8+,Windows/Linux 环境均兼容。

二、关键步骤:MySQL 配置(核心前提)

2.1 开启并验证 Binlog

执行 SQL 查看当前 Binlog 状态,确认 log_bin 为 ON。

# 查看binlog是否开启show variables like "%log_bin%"; 
# 查看所有binlog日志show master logs;
# 查看最新binlog日志详情 包含文件名和事件时间操作点show master status;
# 新建binlogflush  logs;
# 清空所有binlog日志reset master;

修改配置文件(Linux 为 my.cnf,Windows 为 my.ini),添加 server-id、log-bin 等核心配置。

#my.cnf(liunx) my.ini(windows) 开启binlog
[mysqld]
#设置mysql服务的唯一标识,便于区分不同服务实例,用于数据库复制中。
server-id=1024
#开启binlog日志
log-bin=mysql-bin
#设置 MySQL binlog 日志格式为 ROW。
binlog-format=ROW
#记录所有列的新旧值
binlog_row_image = FULL

重启 MySQL 后,通过 SHOW VARIABLES 命令验证 server_id、binlog_format 等参数是否生效。

SHOW VARIABLES LIKE 'server_id';SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'binlog_format';
SHOW VARIABLES LIKE 'binlog_row_image';

2.2 创建并授权 Canal 用户

  create user 'canal'@'%' identified by 'canal';grant all privileges on *.* to 'canal'@'%';flush privileges;

新建 canal 用户,允许远程访问(% 表示所有地址)。
授予 select、replication slave 等复制必需权限,或直接授予 all privileges 简化配置。
执行 flush privileges 刷新权限配置,确保生效。

三、Canal 配置:Admin + Deployer 部署

3.1 Canal Admin 配置

新建 canal_manager 数据库,导入 conf 目录下的 canal_manager.sql 脚本。
编辑 conf/application.yml,配置数据库连接(指向 canal_manager 库)、端口(默认 8089)等。
在这里插入图片描述

启动 Admin:Windows 运行 bin/startup.bat,Linux 执行 bin/startup.sh。

3.2 Canal Deployer 配置

核心配置文件为 conf/canal.properties,无需过多修改,保持默认即可。
启动 Deployer:同样通过 bin 目录下的启动脚本启动,与 Admin 联动。
在这里插入图片描述

  • canal.properties: Canal 服务器的全局配置文件,包含了 Canal 服务端的一些基础设置。
    在这里插入图片描述
  • 启动canal.admin-1.1.8
    Widnows 启动: bin目录下startup.bat
    linux启动: bin目录下startup.sh
  • canal.deployer-1.1.8
    Widnows bin目录下startup.bat
    linux bin目录下startup.sh

四、管理页操作:添加 Canal 实例

访问 http://127.0.0.1:8089,使用 admin/123456 登录。
添加实例:配置实例名称、MySQL 主库地址、canal 用户名密码,确保实例名称与后续监听服务一致。
在这里插入图片描述
修改canal.instance,添加管理信息配置,将canal server(canal 服务)交由canal admin(管理页面管理)
在这里插入图片描述

五、本地监听服务:

通过springboot启动canal服务,监听各个instance实例binlog数据版本变化,解析变化的数据;
配置文件中各实例名称需与canal-admin内配置的一致;
在这里插入图片描述

spring Boot 集成要点

  • 多数据源动态切换:通过配置文件管理主从库连接,实现灵活切换。
  • 多实例监听:针对 Admin 中添加的每个实例,建立独立监听线程,解析 Binlog 变化。
  • 数据同步与过滤:只同步目标表数据,过滤无效表或无关操作(如删除、临时表操作)。
  • 断线重连:开发重试机制,处理 MySQL 主库、Canal 实例、监听服务的断线场景。
  • 过滤监听数据源,无效表

六、常见问题排查

Binlog 未生成:检查配置文件是否正确、MySQL 是否重启。
Canal 连接 MySQL 失败:确认用户名密码正确、MySQL 端口开放、防火墙未拦截。
Admin 登录失败:检查 canal_manager 数据库是否导入成功、application.yml 中数据库配置是否正确。

下载地址https://github.com/alibaba/canal/releases
安装教程https://blog.csdn.net/liushangzaibeijing/article/details/147331105

http://www.dtcms.com/a/554621.html

相关文章:

  • 仓颉语言从0到1的学习心得-day01
  • 线程互斥:并发编程中的互斥量(Mutex)与RAII风格锁管理机制
  • 中国广东手机网站建设家具设计师要学哪些软件
  • CAN通信原理初步认识
  • 阆中市建设局网站首页梧州做网站的公司
  • 怎么写网站建设的说明网站点击量怎么查
  • 计网5.2 UDP
  • CMP(类ClouderaCDP7.3(404次编译) )完全支持华为鲲鹏Aarch64(ARM)使用 AI 优化库存水平、配送路线的具体案例及说明
  • seo最好的网站源码自己做游戏app的网站吗
  • 网站播放视频插件织梦cms零基础做网站
  • 网上购物网站制作命令删除wordpress 缓存
  • 整站优化排名大兴安岭网站建设
  • AI驱动的测试:用Dify工作流实现智能缺陷分析与分类
  • AI Agent 核心组件深度解析:规划、记忆与工具使用的底层逻辑
  • cms网站如何修改软件项目管理系统
  • 网站建设合同用缴印花税吗wordpress浮动关注我们
  • LeetCode 每日一题 2025/10/27-2025/11/2
  • 做的比较好的手机网站今天重大新闻50字
  • 做网站内容都有哪些做的好的网站有哪些
  • 2、两数相加
  • 合肥做网站维护的公司苏州网站开发公司济南兴田德润厉害吗
  • 顺序表vector--------练习题2题解
  • 后端开发 DTO-Entity-VO 转换模式详解
  • 做私人网站 违法设计制作生态瓶教学设计
  • snipaste免费版下载安装使用教程(附安装包)
  • 【openGauss】带有out参数的存储过程及自定义函数的重载测试
  • MATLAB高效算法实战技术文章大纲
  • 上海网站建设技术指导公司杭州知名的互联网公司
  • 从域名到网站网站建设报价单表格模板
  • 高效静电测试门禁通道闸成为静电的防线 蒙冬智能