1. 概述
CDC(Change Data Capture),即数据变更抓取,通过为源端数据源开启CDC,可实现数据源的实时数据同步以及数据表的 DDL 同步。
本章节主要介绍如何为 MySQL 数据库开启 Binlog 模式 CDC 功能。其中,FDL 支持的 Binlog 模式为 row 格式。
2. 操作步骤
2.1 确认当前使用的数据库版本
确认是否为数据管道同步任务所支持的版本。
当前仅支持 MYSQL 5.5 及以上的非只读数据库。
2.2 开启数据库 Binlog
由于实时同步对 MySQL 数据库的读取方式为 Binlog ,因此需要提前对数据库开启 Binlog。
注:示例为 Linux 环境开启方式。
进入 etc 文件中,编辑my.cnf 文件,如下图所示:
修改 my.cnf 文件,增加如下内容:
注1:本示例为 Linux 环境下,若在 windows 环境下部署的 MySQL 则需要修改 my.ini 文件。
注2:server_id=2,其中2可写任意数值。
server_id=2
log_bin=mysql-bin
binlog_format=ROW
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
保存文件后重启 MySQL 让配置生效。
输入show variables like 'log_%',查看日志是否开启,如果 log_bin 的值为 on,则日志开启,如下图所示:
同时输入show variables like 'binlog_%',查看 binlog_row_image 及 binlog_format 值是否分别为 FULL、ROW,如下图所示:
2.3 给指定账号开启复制权限
一般复制账号需要以下两个权限:REPLICATION SLAVE 权限、REPLICATION CLIENT 权限。
其中,REPLICATION CLIENT 不可用于建立复制,有该权限时,只是多了可以使用如SHOW SLAVE STATUS、SHOW MASTER STATUS等命令。
1)确定用户状态:
复制用户可以使用 show grants for 用户名来确定复制状态。
如果返回值中没有 replication client 和 replication slave 则需要开启复制权限。
2)使用以下命令进行权限开启
grant replication client on *.* to 用户名;
grant replication slave on *.* to 用户名;
示例如下:
然后使用命令:show grants for fdluser,查询用户权限状态,若返回值中包含下面的权限,则表示权限开启成功,如下图所示:
注:此处 fdluser 可修改为自己数据库的用户。