MySQL
开启 MySQL binlog
- 查看是否开启了 binlog
show variables like ‘log_bin%’;

- 如果
log_bin为OFF,需要开启 my.ini进行设置# canal 设置log-bin=mysql-bin # 开启 binlogbinlog-format=ROW # 选择 ROW 模式server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
然后重启 MySQL 即可
赋予 canal 登录账号和权限
远端访问权限,账号密码是 canal
grant select, replication slave, replication client on . to ‘canal’@’%’ identified by ‘canal’;
本地访问权限,账号密码是 canal
grant select, replication slave, replication client on . to ‘canal’@’localhost’ identified by ‘canal’;
刷新权限
flush privileges;
查看指令
查看当前正在记录的日志
— 主 show master status; — 从 show slave status;
查看 mysql binlog 模式(要求为ROW模式)
show VARIABLES like ‘binlog_format’;
获取 binlog 文件列表
show binary logs;
查看指定 binlog 文件的内容
show binlog events in ‘mysql-bin.000040’;
Canal
canal.destinations = demo1
<a name="zTs8P"></a>### 配置 instance.properties- 一个可以有多个**实例监听 **MySQL 的 binlog- 默认是 `example` 实例,如果需要多个,直接拷贝并且修改对应的 `instance.properties` 中的```jsoncanal.mq.topic=demo1
以及 canal.properties 中的
# 多个则需要,连接canal.destinations = example,demo1
- 虽然连接的时候实际只要有对应的实例文件夹即可
position info
canal.instance.master.address=127.0.0.1:3306 canal.instance.master.journal.name= canal.instance.master.position= canal.instance.master.timestamp= canal.instance.master.gtid=
username/password
canal.instance.dbUsername=canal canal.instance.dbPassword=canal canal.instance.connectionCharset = UTF-8
mq config
canal.mq.topic=example ```
运行
bin/start.bat或者bin/start.sh
