全部产品
Search
文档中心

:配置MySQL

更新时间:Jun 29, 2023

在使用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的版本。

  • 重要

    为了确保RDS MySQL 5.6.x版本的正常运行,默认已开启增量快照功能(即scan.incremental.snapshot.enabled=true),但5.6.x版本的RDS MySQL不支持关闭增量快照功能,而RDS MySQL 6.0.8和8.0.1版本的数据库已解除该限制,即支持关闭增量快照功能。建议您不要关闭增量快照功能,因为关闭增量快照功能会锁定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和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

  • 您可以通过执行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和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

  • 您可以通过执行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. 创建账号并设置密码。

    2. CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
    3. 详情请参见创建用户

    4. 配置用户所需权限。

    5.  GRANT SELECT, REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password'; 
    6. *.* 表示授权账号所有数据库中所有表均拥有上述权限。您也可以指定授权账号给单个数据库上述权限,即mydb.*

    7. 确定用户权限。

    8. FLUSH PRIVILEGES;