MYSQL数据库环境准备
概述
介绍如何为 MySQL 数据库开启 Binlog 模式 CDC 功能
操作步骤
确认当前使用的数据库版本
5.5<=适配版本<8.2.0
开启数据库 Binlog
由于实时同步对 MySQL 数据库的读取方式为 Binlog ,因此需要提前对数据库开启 Binlog。
进入 etc 文件中,编辑 my.cnf 文件,如下图所示:

确认 Binlog 保存天数
mysql 为云平台部署,需要运维在云平台确认 binlog 保存天数,注意超出天数的 binlog 会挪到 oss,flink 无法进行消费,建议后续监控 binlog 写入速度设置合适的 binlog 保存天数
对于私有化部署的 mysql,超出天数的 binlog 会被删掉
确认单个 Binlog 保留大小
单个 Binlog 文件大小的设置需要结合具体业务场景,一般我们建议单个 Binlog 文件不要超过 500MB。
修改 my.cnf 文件
增加如下内容:
server_id=2
log_bin=mysql-bin
binlog_format=ROW
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# 这里的 '7' 表示保留最近 7 天的 Binlog。如果设置为 0,则表示永不删除。
expire_logs_days = 7
# 根据需要设置binlog文件大小,建议值 500 MB。
max_binlog_size = 536870912
server_id=2,其中 2 可写任意数值。

保存文件后重启 MySQL 让配置生效。
输入 show variables like 'log_%',查看日志是否开启,如果 log_bin 的值为 on,则日志开启,如下图所示:

同时输入 show variables like 'binlog_%',查看 binlog_row_image 及 binlog_format 值是否分别为 FULL、ROW,如下图所示:

输入 show variables like 'max_binlog_size',查看 binlog 大小,默认为 500M,max_binlog_size 是否为 536870912;
给指定账号开启复制权限
一般复制账号需要以下两个权限: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 用户名,查询用户权限状态,若返回值中包含下面的权限,则表示权限开启成功,如下图所示:
