在使用MySQL的CDC源表Connector前,上游的MySQL存储需要满足一些版本、网络、账号权限等要求,还需要开启Binlog。本文将从RDS MySQL、PolarDB MySQL和自建MySQL三种环境详细为您介绍相关要求及操作。
RDS MySQL
网络连接配置要求
RDS和Flink全托管之间需要网络连通。
如果RDS和Flink全托管均处于同地域的同一VPC网络中,则RDS与Flink全托管的网络是连通的。
如果RDS和Flink全托管均处于不同的网络环境中,那么您需要通过VPN网关等方式,将RDS与Flink全托管之间的网络打通。详情请参见Flink全托管如何访问公网?和如何访问跨VPC的其他服务?。
MySQL服务器配置要求
版本限制
VVR 4.0.8及以上版本的MySQL CDC Connector支持读取5.7和8.0.x版本的MySQL,VVR 4.0.11及以上版本的MySQL CDC Connector支持读取5.6.x、5.7.x和8.0.x版本的MySQL。您可以通过执行select version()命令来查看MySQL的版本。
需要开启Binlog
如果返回值为ON,则表示已开启。
如果返回值为OFF,则表示未开启。如果您需要开启Binlog,请参见本地日志(Binlog)。
Binlog格式需要为ROW。
您可以通过show variables like "binlog_format"命令查看Binlog格式。RDS MySQL默认格式即为ROW。
binlog_row_image需要为FULL。
您可以通过show global variables like "binlog_row_image"命令查看Binlog image。RDS MySQL默认image为FULL。
为了确保RDS MySQL 5.6.x版本的正常运行,默认已开启增量快照功能(即scan.incremental.snapshot.enabled=true),但5.6.x版本的RDS MySQL不支持关闭增量快照功能,而RDS MySQL 6.0.8和8.0.1版本的数据库已解除该限制,即支持关闭增量快照功能。建议您不要关闭增量快照功能,因为关闭增量快照功能会锁定MySQL数据库,可能会对线上业务处理性能产生影响。
您可以通过执行show variables like "log_bin"命令查看Binlog是否已开启。
会话参数配置要求
interactive_timeout(交互超时):对于交互式connection,服务器在关闭交互连接之前等待活动的秒数。配置指导请参见配置MySQL interactive_timeout参数。
wait_timeout(等待超时):对于非交互式connection,服务器在关闭连接之前等待活动的秒数。配置指导请参见配置MySQL wait_timeout参数。
当读取大型数据库全量数据快照时,已建立的连接可能会在读取表数据时超时。您可以通过在MySQL配置文件中配置interactive_timeout和wait_timeout参数来防止这种现象。参数详情如下:
账号权限配置要求
创建用户并授予该用户SELECT、REPLICATION SLAVE和REPLICATION CLIENT权限,MySQL CDC同步RDS MySQL数据的过程中需要此三个权限。详情请参见创建账号。
PolarDB MySQL
网络连接配置要求
PolarDB和Flink全托管之间需要网络连通。
如果PolarDB和Flink全托管均处于同地域的同一VPC网络中,则PolarDB与Flink全托管的网络是连通的。
如果PolarDB和Flink全托管均处于不同的网络环境中,您需要通过VPN网关等方式,将PolarDB与Flink全托管之间的网络打通。详情请参见Flink全托管如何访问公网?和如何访问跨VPC的其他服务?。
MySQL服务器配置要求
版本限制
VVR 4.0.8及以上版本的MySQL CDC Connector支持读取5.7和8.0.x版本的MySQL,VVR 4.0.11及以上版本的MySQL CDC Connector支持读取5.6、5.7和8.0.x版本的MySQL。您可以通过执行select version()命令来查看MySQL的版本。
需要开启Binlog
如果返回值为ON,则表示已开启。
如果返回值为OFF,则表示未开启。如果您需要开启Binlog,请参见开启Binlog。
Binlog格式需要为ROW。
您可以通过show variables like "binlog_format"命令查看Binlog格式。PolarDB MySQL默认格式为ROW。
binlog_row_image需要为FULL。
您可以通过show global variables like "binlog_row_image"命令查看Binlog image。PolarDB MySQL默认image为FULL。
您可以通过执行show variables like "log_bin"命令查看Binlog是否已开启。
会话参数配置要求
interactive_timeout(交互超时):对于交互式connection,服务器在关闭交互连接之前等待活动的秒数。配置指导请参见设置集群参数和节点参数。
wait_timeout(等待超时):对于非交互式connection,服务器在关闭连接之前等待活动的秒数。配置指导请参见设置集群参数和节点参数。
当读取大型数据库全量数据快照时,已建立的连接可能会在读取表数据时超时。您可以通过在MySQL配置文件中配置interactive_timeout和wait_timeout参数来防止这种现象。参数详情如下:
账号权限配置要求
创建一个普通用户并授予该用户SELECT、REPLICATION SLAVE和REPLICATION CLIENT权限,MySQL CDC同步PolarDB MySQL数据的过程中需要此三个权限。创建用户并授予权限操作详情,请参见创建数据库账号。
在PolarDB控制台创建的账号默认没有SELECT权限。因此您需要手动添加SELECT权限,添加权限详情请参见MySQL数据库账号权限管理。
自建MySQL
网络连接配置要求
自建MySQL和Flink全托管之间需要网络连通。
如果您的MySQL部署在阿里云上,且和Flink全托管均处于同地域的同一VPC网络中,则MySQL与Flink全托管的网络是连通的。
如果您的MySQL不在阿里云上,则需要有公网地址,使得Flink全托管能够访问该地址。因此您需要通过VPN网关将自建MySQL和Flink全托管的网络打通。详情请参见Flink全托管如何访问公网?。
MySQL服务器配置要求
版本限制
VVR 4.0.8及以上版本的MySQL CDC Connector支持读取5.7和8.0.x版本的MySQL,VVR 4.0.11及以上版本的MySQL CDC Connector支持读取5.6.x、5.7.x和8.0.x版本的MySQL。您可以通过执行select version()命令来查看MySQL的版本。
需要开启Binlog
如果返回值为ON,则表示已开启。
如果返回值为OFF,则表示未开启。如果您需要开启Binlog,请参见开启Binlog。
Binlog格式需要为ROW。
您可以通过show variables like "binlog_format"命令查看Binlog格式。如果不为ROW,则需要将Binlog格式设置为ROW,详情请参见设置Binlog格式。
binlog_row_image需要为FULL。
您可以通过show global variables like "binlog_row_image"命令查看Binlog image。如果不为FULL,则需要将binlog_row_image设置为FULL,详情请参见binlog_row_image设置。
您可以通过执行show variables like "log_bin"命令查看Binlog是否已开启。
会话参数配置要求
interactive_timeout(交互超时):对于交互式connection,服务器在关闭交互连接之前等待活动的秒数。配置指导请参见配置MySQL interactive_timeout参数。
wait_timeout(等待超时):对于非交互式connection,服务器在关闭连接之前等待活动的秒数。配置指导请参见配置MySQL wait_timeout参数。
当为大型数据库读取全量数据时,已建立的连接可能会在读取表数据时超时。您可以通过在MySQL配置文件中配置interactive_timeout和wait_timeout参数来防止这种现象。参数详情如下:
账号权限配置要求
创建账号并设置密码。
详情请参见创建用户。
配置用户所需权限。
*.* 表示授权账号所有数据库中所有表均拥有上述权限。您也可以指定授权账号给单个数据库上述权限,即mydb.*。
确定用户权限。
创建一个用户并授予该用户SELECT、REPLICATION SLAVE和REPLICATION CLIENT权限。操作步骤如下:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;