githubEdit

高级篇day04-安装Canal

下面我们就开启 mysql 的主从同步机制,让 Canal 来模拟 salve

1. 开启 MySQL 主从

Canal 是基于 MySQL 的主从同步功能,因此必须先开启 MySQL 的主从功能才可以。

这里以之前用 Docker 运行的 mysql 为例:

1.1 开启 binlog

打开 mysql 容器挂载的日志文件,我的在/tmp/mysql/conf目录:

image-20210813153241537

修改文件:

添加内容:

配置解读:

  • log-bin=/var/lib/mysql/mysql-bin:设置 binary log 文件的存放地址和文件名,叫做 mysql-bin

  • binlog-do-db=heima:指定对哪个 database 记录 binary log events,这里记录 heima 这个库

最终效果:

1.2 设置用户权限

接下来添加一个仅用于数据同步的账户,出于安全考虑,这里仅提供对 heima 这个库的操作权限。

重启 mysql 容器即可

测试设置是否成功:在 mysql 控制台,或者 Navicat 中,输入命令:

image-20200327094735948

2. 安装 Canal

2.1 创建网络

我们需要创建一个网络,将 MySQL、Canal、MQ 放到同一个 Docker 网络中:

让 mysql 加入这个网络:

2.3 安装 Canal

课前资料中提供了 canal 的镜像压缩包:

image-20210813161804292

大家可以上传到虚拟机,然后通过命令导入:

然后运行命令创建 Canal 容器:

说明:

  • -p 11111:11111:这是 canal 的默认监听端口

  • -e canal.instance.master.address=mysql:3306:数据库地址和端口,如果不知道 mysql 容器地址,可以通过docker inspect 容器id来查看

  • -e canal.instance.dbUsername=canal:数据库用户名

  • -e canal.instance.dbPassword=canal :数据库密码

  • -e canal.instance.filter.regex=:要监听的表名称

表名称监听支持的语法:

Last updated

Was this helpful?