文章目录
1.主从数据库同步原理
2.canal使用步骤
2.1 开启binlog
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1
# 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
2.2 配置canal
canal.properties
- canal.ip:Canal Server所在机器的IP地址。
- canal.port:Canal Server监听的端口号。
- canal.destinations:指定需要同步的数据库实例名称,可以配置多个,以逗号分隔。
- canal.instance.master.address:MySQL主库的地址。
- canal.instance.master.journal.name:MySQL主库的binlog文件名。
- canal.instance.dbUsername:MySQL连接的用户名。
- canal.instance.dbPassword:MySQL连接的密码。
instance.properties
- canal.instance.mysql.slaveId:MySQL 从库的ID,用于标识不同的从库。
- canal.instance.master.address:MySQL 主库的地址
- canal.serverMode = tcp Canal 服务的模式,还有xxxMQ形式。
区别
-
canal.properties:通常包含了全局性的配置项,适用于整个 Canal 服务实例。这些配置项会影响到 Canal 服务的整体行为,比如监听端口、IP 地址等。
-
instance.properties:包含了特定数据库实例的配置信息,主要用于配置与该数据库实例相关的参数,如主从库地址、用户名密码、binlog 文件位置等。这些配置项是针对具体的数据库实例进行设置的,用于指定数据同步的源头。
3.创建Canal用户
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;