MySQL 实时同步神器 Canal 安装部署与实战测试指南
? 实时数据同步、数据库变更监听、高性能缓存刷新、搜索引擎同步,一套工具搞定!
? 什么是 Canal?
Canal 是阿里巴巴开源的 MySQL Binlog 增量订阅&消费中间件,最初用于阿里巴巴内部 MySQL → HBase/ES 的同步。如今,它是企业实现 实时数据同步 和 数据库 CDC(变更捕获) 的首选方案之一。
? 典型应用场景
• MySQL → Elasticsearch 实时搜索同步 • MySQL → Kafka → 多系统数据总线 • 数据库缓存自动更新(如 Redis) • 实时监控审计数据库操作
? 安装前准备
环境需求:
⚙️ 一、MySQL 配置(开启 Binlog)
修改 MySQL 配置文件(my.cnf):
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW?
binlog-format=ROW是 Canal 支持的格式。
保存后重启 MySQL:
systemctl restart mysqld
创建 Canal 用户并授权:
CREATE USER 'canal'@'%' IDENTIFIED BY 'canal123';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;⬇️ 二、部署 Canal 服务端
1. 下载 Canal 部署包
wget https://github.com/alibaba/canal/releases/download/canal-1.1.7/canal.deployer-1.1.7.tar.gz
tar zxvf canal.deployer-1.1.7.tar.gz
cd canal.deployer-1.1.72. 配置连接 MySQL
编辑 conf/example/instance.properties:
canal.instance.master.address=127.0.0.1:3306
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal123
canal.instance.connectionCharset = UTF-8
canal.instance.tsdb.enable=true▶️ 三、启动 Canal 服务
sh bin/startup.sh
查看启动日志:
tail -f logs/canal/canal.log
tail -f logs/example/example.log如有 Canal started 字样,说明服务已启动成功。
? 四、案例实战:实时同步测试
1. 创建测试库和表:
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(50));
INSERT INTO user VALUES (1, 'Alice');2. 编写 Java 客户端消费 binlog
可基于 Canal 官方示例编写 Consumer,也可以使用现成的 canal-adapter(同步 Kafka / ES)。
? 完整 Java 代码、Kafka 接入、ES 同步配置可留言获取!
? 五、可视化管理(Canal Admin)
Canal 提供 Web 控制台 canal.admin,用于图形化配置和监控同步任务。
• 下载 canal.admin 包
git clone https://github.com/alibaba/canal.git
cd canal
# 切换到 1.1.5 分支或 tag
mvn clean package -DskipTests
# 找到 admin/target/canal.admin-1.1.5-SNAPSHOT.tar.gz
tar zxvf canal.admin-1.1.5-SNAPSHOT.tar.gz
cd canal.admin-1.1.5-SNAPSHOT
• 配置数据库连接 conf/canal_admin.properties
server.port=8089
spring.datasource.address=127.0.0.1:3306
spring.datasource.database=canal_manager
spring.datasource.username=root
spring.datasource.password=123456
canal.adminUser=admin
canal.adminPasswd=admin123
• 浏览器访问 http://your-ip:8089
sh bin/startup.sh
? 高级玩法推荐
常见问题 FAQ
本文链接:https://www.kinber.cn/post/5405.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
