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

【安装指南】Canal 环境的安装与使用

目录

一、MySQL 的配置

1.1 开启并配置 Binlog

1.2 重启 MySQL 服务

1.3 赋值数据同步权限

二、安装并配置 Canal

2.1 下载并解压Canal

2.2 修改配置

2.2.1 结合 Kafka

2.2.1.1 修改canal.properties

2.2.1.2 修改instance.properties

2.2.2 结合 RabbitMQ

2.2.2.1 修改canal.properties

2.2.2.2 修改instance.properties

2.3 拷贝 jar 包

2.4 启动 Canal

三、Canal 执行原理

四、常见错误

4.1 Unrecognized VM option 'PermSize=128m'


一、MySQL 的配置

1.1 开启并配置 Binlog

找到 MySQL 配置文件,Linux 默认配置在 /etc/my.cnf 文件中,而 Windows 在安装目录的路径如下:

  • MySQL 8.0 及更高版本:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

  • MySQL 5.7 及更低版本:C:\Program Files\MySQL\MySQL Server 5.7\my.ini (具体路径可能因安装时的选择而有所不同)

需要注意的是,ProgramData 可能是一个隐藏文件夹,您可能需要在文件资源管理器中设置显示隐藏的文件和文件夹才能看到它。

修改成如下配置(基于 MySQL8)

log-bin="AOYUNLAN"
binlog_format=ROW
binlog-do-db=cloud

其中:binlog-do-db 指的是需要同步的数据库名,需改改为你自己需要同步的数据库名,如果此项不配置,则所有数据库都会开启 Binlog,如果需要指定开启多个只需要如下配置即可:

binlog-do-db=cloud
binlog-do-db=cloud2
binlog-do-db=cloud3

binlog_format 支持三种数据库格式:

  1. STATEMENT (语句模式):基于 SQL 语句的复制。binlog 中记录的是执行的 SQL 语句。

    1. 优点:节省空间,因为只记录语句,不需要记录每一行数据的变化。

    2. 缺点:某些情况下可能会导致主从数据不一致,例如使用了不确定函数,如 NOW() 、 RAND() 或依赖于上下文的语句(如 LIMIT 基于行的偏移量)。

  2. ROW (行模式):基于行的复制。binlog 中记录的是每行数据的变化。

    1. 优点:数据的一致性更好,几乎不会出现主从数据不一致的情况。

    2. 缺点:会产生大量的日志,特别是在表中有大量数据更新时,binlog 体积较大。

  3. MIXED (混合模式):默认情况下使用 STATEMENT 模式,如果遇到某些不确定的语句,会自动切换到 ROW 模式。

    1. 优点:试图结合 STATEMENT 和 ROW 模式的优点,在大部分情况下使用 STATEMENT 节省日志空间,在必要时切换到 ROW 保证数据一致性。

    2. 缺点:由于模式的切换可能会导致一些复杂的情况,增加了理解和调试的难度。

但需要注意的是:基于 Canal 实现的数据同步只能使用 ROW 格式,因为它不能将 SQL 语句执行变成对应的数据,所以它只能获取修改后的数据进行同步。

演示内容为 ROW 行模式 

http://www.xdnf.cn/news/8340.html

相关文章:

  • 手写一个简单的线程池
  • SQL实战之索引失效案例详解
  • Python在自动驾驶中的多传感器融合——让智能汽车“看得更清楚”
  • “Agent上车”浪潮来临,谁在引领新一轮的AI座舱交互变革?
  • JMeter 教程:监控性能指标 - 第三方插件安装(PerfMon)
  • SQL SERVER中实现类似LEAST函数的功能,返回多列数据中的最小值
  • 6个月Python学习计划 Day 2
  • python 实现一个完整的基于Python的多视角三维重建系统,包含特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能
  • Javase易混点专项复习02_static关键字
  • Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和
  • 003-类和对象(二)
  • Ubuntu Linux系统的基本命令详情
  • 李宏毅《机器学习2025》笔记 —— 更新中
  • 使用 uv 工具从 pyproject.toml 和 uv.lock 快速安装 Python 依赖
  • 10G SFP+ 双纤光模块选购避坑指南:从SFP-10G-LRM到SFP-10G-ZR的兼容性与应用
  • C语言中的文件I/O
  • 用算法实现 用统计的方式实现 用自然语言处理的方法实现 用大模型实现 专利精益化统计分析
  • Attu下载 Mac版与Win版
  • 电磁兼容(EMC)仿真(精编版)
  • pytorch LSTM 结构详解
  • PR-2014《The MinMax K-Means clustering algorithm》
  • HTML5的新语义化标签
  • 腾讯地图WebServiceAPI提供基于HTTPS/HTTP协议的数据接口
  • JAVA:Kafka 存储接口详解与实践样例
  • 练习小项目7:天气状态切换器②
  • 机器学习中的维度、过拟合、降维
  • 从制造到智造:猎板PCB的技术实践与产业价值重构
  • 攻防世界 - MISCall
  • JMeter-SSE响应数据自动化
  • SVN被锁定解决svn is already locked