跳到主要内容

配置 MySQL 数据源

最近更新 2026/10/03

MySQL 是一种开源的关系型数据库管理系统,能高效地存储、管理和查询大量数据,支持多种操作系统,被广泛应用于各种类型的软件和网站开发中。

AE 数据开发平台 离线同步方案 支持 MySQL 数据源的 读取(Reader)和 写入(Writer)。本文将为您介绍 MySQL 数据同步能力的支持情况。

支持的版本​

mysql 5.5+

使用限制​

目前仅支持以下配置方式:


  • 支持读取 MySQL 数据源(离线读取)并向 AE 预置仓空间表写入
  • 支持 AE 预置仓空间表 向 MySQL 写入(离线写入)

注:暂不支持 MySQL 数据库向非 AE 预置仓的其他数据库直接写入。

支持的字段类型​

字段类型离线读(MySQL Reader)离线写(MySQL Writer)
TINYINT支持支持
SMALLINT支持支持
INTEGER支持支持
BIGINT支持支持
FLOAT支持不支持
DOUBLE支持支持
DECIMAL支持支持
DATE支持支持
DATETIME支持支持
TIMESTAMP支持支持
REAL支持不支持
VARCHAR支持支持
JSON支持不支持
TEXT支持不支持
MEDIUMTEXT支持不支持
LONGTEXT支持不支持
ENUM支持不支持
SET支持不支持
BIT支持不支持
TIME支持不支持
YEAR支持不支持
VARBINARY不支持不支持
BINARY不支持不支持
TINYBLOB不支持不支持
MEDIUMBLOB不支持不支持
LONGBLOB不支持不支持
Blob不支持不支持
BOOLEAN不支持不支持
MULTIPOLYGON不支持不支持
LINESTRING不支持不支持
POLYGON不支持不支持
MULTIPOINT不支持不支持
MULTILINESTRING不支持不支持
GEOMETRYCOLLECTION不支持不支持

创建 MySQL 数据源​

在 数据开发平台 - 集成 模块,您可以选择 新增 MySQL 数据源

数据源配置参数信息​

填写数据源所需的配置信息并完成连通性测试后,即可成功创建 MySQL 数据源。

其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

字段名称说明
基本信息
*数据源名称数开平台空间内唯一,必须以字母、数字、下划线组合,且不能以数字和下划线开头
备注选填
数据源配置
不区分环境 / 独立环境配置二选一:「不区分环境」表示 生产环境 与 开发环境 共用一套配置,「独立环境配置」表示双环境独立配置
*连接字符串

连接字符串(Connection String)是用于建立与 MySQL 数据库连接的字符串组合

注:暂不支持字符串中的参数解析

*数据库名连接的 MySQL 数据库名称
*用户名有权限访问数据库的用户名
*密码用户名对应的密码信息
高级配置连接数据库所需的其他高级参数,可自定义填写

高级参数黑名单​

为保障集成安全,我们在「高级配置」中不支持以下参数的配置。

参数名称用途安全陷阱
allowLoadLocalInfile用途: 控制是否允许通过 LOAD DATA LOCAL INFILE SQL 语句从客户端机器(即运行你的Java应用程序的服务器)加载文件到MySQL数据库中。安全陷阱: 这是风险极高的参数。如果开启,恶意MySQL服务器(或一个被攻击的合法服务器)可以在客户端连接时,反向请求客户端上的任意文件。攻击者可以伪造一个MySQL服务器,当你的应用尝试连接时,它会发送一个LOAD DATA LOCAL的请求,JDBC驱动会无条件地将客户端机器上的敏感文件(如/etc/passwd, ~/.ssh/id_rsa, 应用配置文件、数据库连接配置等)发送给攻击者服务器。这通常被称为“MySQL客户端文件读取漏洞”的利用。
allowUrlInLocalInfile用途: 控制 LOAD DATA LOCAL INFILE 语句是否允许指定一个URL(如 http://, ftp://)作为文件源。

安全陷阱: 此参数放大了 allowLoadLocalInfile 的风险。它不仅允许读取本地文件,还允许从远程网络位置加载数据。这可能导致:

  1. SSRF (Server-Side Request Forgery): 攻击者可以利用你的数据库连接作为跳板,去访问内部网络中的HTTP/FTP服务,探测内网结构。
  2. 数据注入: 如果攻击者控制了一个远程URL,他可以返回任何他想要注入到数据库中的数据。
allowLoadLocalInfileInPath用途: 这是 allowLoadLocalInfile 的一个安全增强的替代方案(需要较新版本的驱动)。它不允许读取任意文件,而是将文件读取限制到指定的目录及其子目录下。安全陷阱:如果配置的路径范围过大(如 /tmp),或者攻击者通过其他应用漏洞能够将文件写入到该允许的路径下,他们仍然可以读取这些文件。错误配置(如配置成 /)会使其等同于 allowLoadLocalInfile=true。
initCommand用途: 允许你指定一个SQL语句,在每次创建新连接后立即执行。常用于设置会话变量,如 SET NAMES 'utf8mb4' 或 SET time_zone = '+8:00'安全陷阱: 风险来自于用户输入的控制。如果这个参数的值是由用户外部输入拼接而成(而不是在代码中写死的安全字符串),就可能造成SQL注入。一旦攻击者能够控制连接串中的 initCommand,他就可以执行任何有权限的SQL操作,例如删除表、修改数据、添加用户等。
clientFlags用途: 这是一个底层参数,用于设置客户端与MySQL服务器握手时使用的功能标志位。它是一个位掩码(bitmask),通过数字值来启用或禁用客户端的某些特定功能。

安全陷阱: 风险在于它可能包含一些危险的标志位。特别是:

  • CLIENT_LOCAL_FILES (128): 这个标志位显式地启用了对 LOAD DATA LOCAL 的支持。即使在连接串中没有设置 allowLoadLocalInfile=true,只要在 clientFlags 中加上了这个标志位,效果是一样的,会重新引入文件读取风险。
  • CLIENT_SSL (2048): 反之,如果禁用了这个标志(即从默认值中移除),则会强制使用未加密的连接,导致通信可能被窃听和篡改。

上述限制是基于“最小权限原则”和“纵深防御”的安全最佳实践,旨在保护您的应用和底层基础设施免受恶意攻击。

如有任何业务需求必须使用相关功能,请联系 ThinkingAI 运维团队进行单独评估。

创建离线同步任务​

根据上述步骤成功 创建 MySQL 数据源 并测试连通性成功后,您可根据实际场景,配置 MySQL 离线读、MySQL 离线写 等离线同步任务。

MySQL 作为数据来源​

数据来源选择 MySQL,并完成以下相关参数配置:

字段名称说明
*源类型数据来源目标类型选择 MySQL
*数据源名称已在数据源管理界面注册的 MySQL 数据源,下拉可选。
若还未建立相应数据源,可单击 数据源管理 按钮,前往创建 MySQL 数据源。
*取数方式
  • 整表:选取需要读取的库表信息
  • 自定义查询:可使用 SQL 语法直接查询数据源
*数据库名读取的数据库名称
*数据表名读取的数据表信息
分片键若您选择源表信息带有分片字段,您可以选择分片键
数据过滤开启数据过滤开关可以使用 SQL 语法填写 WHERE 过滤语句
高级配置支持批量处理条数等参数控制

其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

MySQL 作为数据去向​

数据去向选择 MySQL,并完成以下相关参数配置:

字段名称说明
*源类型数据去向目标类型选择 MySQL
*数据源名称已在数据源管理界面注册的 MySQL 数据源,下拉可选。
若还未建立相应数据源,可单击 数据源管理 按钮,前往创建 MySQL 数据源。
*数据库名读取的数据库名称
*数据表名读取的数据表信息
*写入模式
  • 覆盖写入(默认):Insert Overwrite
  • 插入新数据: Insert Into
  • 更新插入: Upsert
高级配置支持批量处理条数等参数控制

其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

字段映射说明​

完成数据来源和目标端配置后,需建立字段映射关系,系统将按照映射关系将源端字段中的数据自动同步至目标字段中。字段映射关系有三种配置方式:

  • 方式一:自定义选择,选中源表字段,并选择目标表中目标字段
  • 方式二:同名映射,系统会自动为源表和目标表中的同名字段建立映射关系
  • 方式三:同行映射,系统会自动为同行字段建立映射关系

需要注意一个目标字段只能对应一个来源字段

字段类型转换方式

提示

在进行数据同步时,系统会使用 CAST() 函数对源表字段进行转型,尝试将其类型转换成目标字段的类型,如果转型失败,则目标字段的值将会被设置为 NULL

数据类型转换特殊说明

  • √ 表示支持对应类型转换
  • √, null 表示支持对应类型转换,若转换失败则被设置为 NULL
源类型/目标类型ROWARRAYMAPSTRINGBOOLEANTINYINTSMALLINTINTBIGINTFLOATDOUBLEDECIMALBYTESDATETIMESTAMPTIME
ROW√, null
ARRAY√, null
MAP√, null
STRING√√, null√, null√, null√, null√, null√, null√, null√, null√, null√, null√, null
BOOLEAN√, null√
TINYINT√, null√√, null√, null√, null
SMALLINT√, null√, null√√, null√, null
INT√, null√, null√, null√√, null
BIGINT√, null√, null√, null√, null√
FLOAT√, null√√, null√, null
DOUBLE√, null√, null√√, null
DECIMAL√, null√, null√, null√
BYTES√, null√
DATE√, null√√, null
TIMESTAMP√, null√, null√
TIME√, null√

基本信息设置​

最后,您需要设置集成方案的基本信息,包括方案的名称、负责人、集成的同步速率以及备注等。

完成配置后,可以点击 「保存」 按钮完成集成方案的创建。

注:方案名称保存后不允许修改

详情页展示:

离线同步方案挂流​

挂载任务流​

1.进入挂载流程

  • 在集成方案详情页,点击右上角「挂载到任务流」按钮

2.选择任务流

  • 从下拉菜单中选择目标任务流

  • 若需新建任务流:

    • 点击下拉菜单下方的「新建任务流」快捷按钮
    • 或前往「开发」模块创建
  • 提示:如未显示目标任务流,可点击右侧↻刷新按钮

3.创建同步节点

  • 在任务流中新建「离线同步方案」类型节点
  • 该节点将关联当前集成方案,节点执行时即触发对应集成方案的运行

4.完成挂载

  • 点击「创建节点并挂载」完成配置
  • 挂载成功后,可点击「前往任务流」立即查看挂载结果
提示

注:挂载任务流所创建的任务节点处于 尚未发布状态,建议您前往查看任务流,并将该节点发布上线。

解除任务流挂载​

如果您希望解除离线同步方案的任务流挂载,

  • 若该任务流还未发布上线,您可前往该方案挂载的任务流,在 开发模式 删除该「离线同步方案」任务节点即可。
  • 若该任务流已经发布上线,在 开发模式 删除该「离线同步方案」任务节点后,您需要重新发布该任务流,即同步解除了该节点在 生产环境 上的挂载。
这篇文档对你有帮助吗?