Canal的入门操作记录

文章目录

canal其实就是假装自己是从数据库,来监听主数据库的binlog得到数据的变化信息
canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议

MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )

canal 解析 binary log 对象(原始为 byte 流)

1.主从数据库同步原理

2.canal使用步骤

2.1 开启binlog

yaml 复制代码
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1
 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

2.2 配置canal

canal.properties

  1. canal.ip:Canal Server所在机器的IP地址。
  2. canal.port:Canal Server监听的端口号。
  3. canal.destinations:指定需要同步的数据库实例名称,可以配置多个,以逗号分隔。
  4. canal.instance.master.address:MySQL主库的地址。
  5. canal.instance.master.journal.name:MySQL主库的binlog文件名。
  6. canal.instance.dbUsername:MySQL连接的用户名。
  7. canal.instance.dbPassword:MySQL连接的密码。

instance.properties

  1. canal.instance.mysql.slaveId:MySQL 从库的ID,用于标识不同的从库。
  2. canal.instance.master.address:MySQL 主库的地址
  3. canal.serverMode = tcp Canal 服务的模式,还有xxxMQ形式。

区别

  1. canal.properties:通常包含了全局性的配置项,适用于整个 Canal 服务实例。这些配置项会影响到 Canal 服务的整体行为,比如监听端口、IP 地址等。

  2. instance.properties:包含了特定数据库实例的配置信息,主要用于配置与该数据库实例相关的参数,如主从库地址、用户名密码、binlog 文件位置等。这些配置项是针对具体的数据库实例进行设置的,用于指定数据同步的源头。

3.创建Canal用户

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

4.取信息

5.SpringBoot整合

相关推荐
huhy~1 小时前
基于CentOS7.9搭建MySQL高可用集群【MGR单主】
数据库·mysql
℡終嚸♂6801 小时前
sql注入知识点(正则回溯绕过waf,CTF ez—RCE题目解析)
数据库·sql·oracle
了一梨3 小时前
SQLite3学习笔记4:打开和关闭数据库 + 创建表(C API)
数据库·学习·sqlite
Hgfdsaqwr8 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
charlotte102410249 小时前
数据库概述
数据库
清平乐的技术专栏9 小时前
HBase集群连接方式
大数据·数据库·hbase
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大11 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
哈__11 小时前
多模融合 一体替代:金仓数据库 KingbaseES 重构企业级统一数据基座
数据库·重构
老邓计算机毕设11 小时前
SSM医院病人信息管理系统e7f6b(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·医院信息化·ssm 框架·病人信息管理
2601_9496130212 小时前
flutter_for_openharmony家庭药箱管理app实战+药品分类实现
大数据·数据库·flutter