1. 介绍
MySQL binlog 会记录数据库的变化情况(数据表的增删改查)。canal 通过模拟 MySQL主从同步 过程,解析 binlog 日志为可读的形式,进而实现 数据同步、主从复制、数据库镜像等业务场景需求。
2. 环境配置
- git:apt install git
- maven:apt install maven
- JDK:安装配置地址,并设置 JAVA_HOME 路径
- MySQL:安装地址,修改配置文件以及创建 canal 用户,模拟 从数据库 备份操作
- my.ini
[mysqld] log-bin=mysql-bin #添加这一行就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复 重启 MySQL,执行: mysql > SHOW MASTER STATUS; // 看是否有结果,返回 binlog 名称以及位置 mysql > SHOW VARIABLES LIKE '%binlog_format%'; // 查看配置文件是否生效,应该返回 ROW
- 创建子用户,赋予相关权限,用于读取 MySQL Binlog 日志
CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, SHOW VIEW, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'<
- my.ini