canal实现数据同步

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 同步远程数据库信息到本地数据库

会用到的命令:

show variables like 'log_bin'
CREATE USER canal IDENTIFIED BY 'canal';    
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';  
FLUSH PRIVILEGES; 
show master status ;
show slave status 
select * from mysql.user

canal同步mysql数据:
复制原理如何工作,整体上来说,复制有3个步骤:
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events复制到它的中继日志(relay log)中;
(3) slave读取中继日志中的事件,将其重放到备库数据之上。
canal就是模仿的slave实现的!

采用canal工具进行mysql数据同步方案:
一. mysql开启Binlog功能
查看是否开启
show variables like 'log_bin'
ON是开启,OFF是关闭

修改my.cnf. Mac默认没有这个文件, /etc目录下

# log_bin
log-bin = mysql-bin #开启binlog
binlog-format = ROW #选择row模式
server_id = 1 #配置mysql replication需要定义,不能和canal的slaveId重复

重启mysql
再次查询是否开启binlog

创建远程访问用户,并授权访问(mysql中之行)

create user 'canal'@'%'IDENTIFIED BY 'canal' 
grant all on *.* to 'canal'@'%'
flush privileges;

# ‘canal’ ‘canal’是canal的example/instances.properties 的dbUsername和dbPassword

二. 下载 canal官网:https://github.com/alibaba/canal/releases
配置
conf/example/instance.properties

canal.instance.mysql.slaveId=1234
 
# position info
canal.instance.master.address=localhost:3306
 
# 自己数据库的用户密码
canal.instance.dbUsername=canal
canal.instance.dbPassword= canal

主要配置这四部分,保证连接到mysql

启动
cd /Users/jkwanga/go/src/canal/bin
./startup.sh

查看日志
tail -f /logs/example/example.log

遇到错误:
报错 dump address /127.0.0.1:3306 has an error
报错:验证失败!账户授权的问题!

很久才找到的解决参考:
https://weikeqin.com/2018/05/16/canal-notes/

此刻已经正常运行了!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
canal 消息中间件 关系型数据库
系统重构数据同步利器之Canal实战篇
系统重构数据同步利器之Canal实战篇
428 1
|
11天前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
90 4
|
24天前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
198 0
|
4月前
|
canal 关系型数据库 MySQL
Canal数据同步工具
Canal数据同步工具
124 2
|
canal 搜索推荐 关系型数据库
docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中(三)
docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中
237 0
|
10月前
|
消息中间件 NoSQL 关系型数据库
Canal+Kafka实现MySQL与Redis数据同步(二)
Canal+Kafka实现MySQL与Redis数据同步
191 0
|
10月前
|
消息中间件 canal NoSQL
Canal+Kafka实现MySQL与Redis数据同步(一)
Canal+Kafka实现MySQL与Redis数据同步
420 0
|
10月前
|
canal NoSQL 关系型数据库
淘东电商项目(22) -Canal数据同步框架
淘东电商项目(22) -Canal数据同步框架
88 0
|
12月前
|
canal SQL 关系型数据库
大数据同步工具Canal 2
大数据同步工具Canal
324 0
|
12月前
|
canal 消息中间件 关系型数据库
大数据同步工具Canal 1
大数据同步工具Canal
453 0

热门文章

最新文章