MySQL
开启 MySQL binlog
- 查看是否开启了 binlog
show variables like ‘log_bin%’;
- 如果
log_bin
为OFF
,需要开启 my.ini
进行设置# canal 设置
log-bin=mysql-bin # 开启 binlog
binlog-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` 中的
```json
canal.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