在使用MySQL的CDC源表Connector前,上游的MySQL存储需要满足一些版本、网络、账号权限等要求,还需要开启Binlog。本文将从RDS MySQL、PolarDB MySQL和自建MySQL三种环境详细为您介绍相关要求及操作。

RDS MySQL

  • 网络连接配置要求
    RDS和VVP之间需要网络连通。
  • 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
      您可以通过执行show variables like "log_bin"命令查看Blinlog是否已开启。
      • 如果返回值为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。

  • 会话参数配置要求
    当读取大型数据库全量数据快照时,已建立的连接可能会在读取表数据时超时。您可以通过在MySQL配置文件中配置interactive_timeoutwait_timeout参数来防止这种现象。参数详情如下:
    • interactive_timeout(交互超时):对于交互式connection,服务器在关闭交互连接之前等待活动的秒数。配置指导请参见配置MySQL interactive_timeout参数
    • wait_timeout(等待超时):对于非交互式connection,服务器在关闭连接之前等待活动的秒数。配置指导请参见配置MySQL wait_timeout参数
  • 账号权限配置要求

    创建用户并授予该用户SELECT、REPLICATION SLAVE和REPLICATION CLIENT权限,MySQL CDC同步RDS MySQL数据的过程中需要此三个权限。详情请参见创建账号

PolarDB MySQL

  • 网络连接配置要求
    PolarDB和VVP之间需要网络连通。
  • 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
      您可以通过执行show variables like "log_bin"命令查看Blinlog是否已开启。
      • 如果返回值为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。

  • 会话参数配置要求
    当读取大型数据库全量数据快照时,已建立的连接可能会在读取表数据时超时。您可以通过在MySQL配置文件中配置interactive_timeoutwait_timeout参数来防止这种现象。参数详情如下:
    • interactive_timeout(交互超时):对于交互式connection,服务器在关闭交互连接之前等待活动的秒数。配置指导请参见设置集群参数和节点参数
    • wait_timeout(等待超时):对于非交互式connection,服务器在关闭连接之前等待活动的秒数。配置指导请参见设置集群参数和节点参数
  • 账号权限配置要求
    创建一个普通用户并授予该用户SELECT、REPLICATION SLAVE和REPLICATION CLIENT权限,MySQL CDC同步PolarDB MySQL数据的过程中需要此三个权限。创建用户并授予权限操作详情,请参见创建数据库账号
    重要 在PolarDB控制台创建的账号默认没有SELECT权限。因此您需要手动添加SELECT权限,添加权限详情请参见MySQL数据库账号权限管理

自建MySQL

  • 网络连接配置要求
    自建MySQL和VVP之间需要网络连通。
    • 如果您的MySQL部署在阿里云上,且和VVP均处于同地域的同一VPC网络中,则MySQL与VVP的网络是连通的。
    • 如果您的MySQL不在阿里云上,则需要有公网地址,使得VVP能够访问该地址。因此您需要通过VPN网关将自建MySQL和VVP的网络打通。详情请参见Flink全托管集群如何访问公网?
  • 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
      您可以通过执行show variables like "log_bin"命令查看Blinlog是否已开启。
      • 如果返回值为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设置

  • 会话参数配置要求
    当为大型数据库读取全量数据时,已建立的连接可能会在读取表数据时超时。您可以通过在MySQL配置文件中配置interactive_timeoutwait_timeout参数来防止这种现象。参数详情如下:
    • interactive_timeout(交互超时):对于交互式connection,服务器在关闭交互连接之前等待活动的秒数。配置指导请参见配置MySQL interactive_timeout参数
    • wait_timeout(等待超时):对于非交互式connection,服务器在关闭连接之前等待活动的秒数。配置指导请参见配置MySQL wait_timeout参数
  • 账号权限配置要求
    创建一个用户并授予该用户SELECT、REPLICATION SLAVE和REPLICATION CLIENT权限。操作步骤如下:
    1. 创建账号并设置密码。
      CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
      详情请参见创建用户
    2. 配置用户所需权限。
       GRANT SELECT, REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password'; 

      *.* 表示授权账号所有数据库中所有表均拥有上述权限。您也可以指定授权账号给单个数据库上述权限,即mydb.*

    3. 确定用户权限。
      FLUSH PRIVILEGES;