MySQL 转 PostgreSQL 迁移工具对比

1. 工具总览

本文汇总了 2025-2026 年主流的 MySQL 到 PostgreSQL 迁移工具,分为两大阵营:云厂商商业工具(阿里云/腾讯云/华为云)和开源工具(pgloader / MySQL2PG 等)。

阿里云 DTS

阿里巴巴
云服务可视化付费

企业级数据传输服务,支持结构迁移 + 全量 + 增量三阶段不停机迁移。

腾讯云 DTS

腾讯
云服务可视化付费

支持无锁迁移、跨账号跨云迁移,对标 TDSQL PostgreSQL 版深度优化。

华为云 DRS

华为
云服务可视化付费

分钟级搭建迁移任务,预检查机制降低风险,政企客户首选。

pgloader

开源社区 · dimitri
开源CLI免费

最流行的开源迁移工具,COPY 协议高效传输,自动类型映射,⭐ 4.3k+。

MySQL2PG

开源社区 · xfg0218
开源CLI免费

专业级 MySQL→PG 工具,v3.4.0 支持完整评估报告、兼容性校验、并发同步。

rds_dbsync

阿里巴巴 · 阿里云开源
开源CLI免费

阿里内部使用的 MySQL→Greenplum/PostgreSQL 同步工具,不落地的实时迁移。

2. 云厂商商业工具对比

维度 阿里云 DTS 腾讯云 DTS 华为云 DRS
迁移模式结构+全量+增量全量+增量结构+全量+增量
不停机迁移✅ 支持✅ 无锁迁移✅ 零停机
源库影响低影响无锁,最低影响低影响
预检查✅ 详细预检查表
数据校验✅ 一致性校验
跨云迁移✅ 支持✅ 支持有限支持
可视化控制台
异构数据库✅ 20+ 种✅ 多种✅ 多种
计费模式按量付费 / 包年包月按量付费按量付费
文档地址help.aliyun.com/zh/dtscloud.tencent.com/dtshuaweicloud.com/drs

3. 阿里云 DTS 详解

阿里云 DTS(Data Transmission Service)是最成熟的企业级迁移方案之一,支持 RDS MySQL → RDS PostgreSQL 一键迁移,也支持自建库之间的迁移。

迁移管线

预检查 结构迁移 全量数据迁移 增量数据迁移 数据校验 割接切换

快速开始

优势

  • 全托管服务,零运维成本
  • 不停机迁移,业务无感知
  • 自动处理类型映射和约束转换
  • 支持跨云/混合云场景
  • 可视化控制台 + 告警监控

局限性

  • 需要阿里云账号,按量付费有成本
  • 源库/目标库需对 DTS 服务器开放网络
  • 部分 MySQL 特性(如存储过程)可能需手动调整

4. 腾讯云 DTS 详解

腾讯云 DTS 的核心特色是无锁迁移——不需要在源 MySQL 上获取全局锁,最大程度降低对业务的影响。

核心特色

优势

  • 无锁迁移,对源库影响最小
  • 跨账号/跨云能力强
  • 对标 TDSQL PG 版深度优化
  • 全托管,可视化操作

局限性

  • 付费服务,按量计费
  • 深度绑定腾讯云生态
  • 自建 PostgreSQL 场景支持有限

5. 华为云 DRS 详解

华为云 DRS(Data Replication Service)主打分钟级搭建预检查,适合政企客户和对合规性要求较高的场景。

核心特色

优势

  • 预检查机制完善,降低迁移风险
  • 搭建速度快,操作简单
  • 政企客户适配,合规性强

局限性

  • 跨云支持不如阿里云/腾讯云灵活
  • 生态相对较小
  • 付费服务

6. 开源工具对比

维度 pgloader MySQL2PG rds_dbsync gomysql2pg
GitHub ⭐4.3k+活跃维护阿里开源200+
语言Common LispJavaGoGo
许可证PostgreSQL License开源Apache 2.0MIT
安装方式Docker / apt / brew / 源码下载 JAR / 源码编译源码编译 GoGo 直接编译
结构迁移✅ 自动转换 DDL✅ 评估+转换主要数据迁移主要数据迁移
全量迁移✅ COPY 协议✅ 并发同步
增量迁移❌ 仅一次性✅ 增量同步✅ 实时同步
数据校验基础✅ 双重校验✅ 对比
评估报告✅ 可视化兼容性报告
GUI / 可视化❌ CLI only✅ 自带 Web UI❌ CLI only❌ CLI only
配置方式.load 配置文件配置文件 + UI 引导JSON/YAML 配置JSON 配置

7. pgloader 详解

pgloader 是最广泛推荐的开源 MySQL→PostgreSQL 迁移工具,由 Dimitri Fontaine 开发维护。核心优势是使用 PostgreSQL 的 COPY 协议高效传输数据。

安装(3 种方式)

Docker(推荐) apt install pgloader brew install pgloader

快速开始(Docker 方式)

配置文件示例

LOAD DATABASE FROM mysql://user:pass@localhost/mydb INTO pgsql://user:pass@localhost/mydb WITH include drop, create tables, create indexes, reset sequences SET PostgreSQL PARAMETERS maintenance_work_mem to '128MB', work_mem to '12MB' ;

适用场景

自建数据库迁移、跨云迁移、不需要增量同步的一次性迁移场景。pgloader 是最轻量、最即开即用的开源方案,适合中小型数据库(GB 级别)。如果是 TB 级数据库或有不停机需求,建议使用云厂商 DTS/DRS 或 MySQL2PG。

优势

  • 安装极简,Docker 一行命令即可
  • COPY 协议传输效率高
  • 自动类型映射(TINYINT→SMALLINT 等)
  • 社区成熟,文档丰富
  • 支持 SQLite/MSSQL/CSV → PG 等多种源

局限性

  • 仅支持一次性全量迁移,不支持增量同步
  • 大型数据库迁移耗时较长
  • 存储过程/触发器需手动转换
  • Common Lisp 编译依赖,自行编译较复杂

8. MySQL2PG 详解

MySQL2PG(xfg0218/mysql2pg)是专业级的 MySQL→PostgreSQL 迁移工具,最新版本 v3.4.0 已发布,是开源方案中功能最全面的。

核心能力

迁移管线

兼容性评估 结构转换 全量迁移 增量同步 数据校验 生成报告

适用场景

如果你需要开源 + 增量同步 + 评估报告三合一,MySQL2PG 是最佳选择。它适合自建数据库的不停机迁移场景,自带 Web UI 降低了操作门槛。特别是生成兼容性评估报告这一功能,能帮助你在迁移前识别风险点。

优势

  • 唯一自带兼容性评估报告的开源工具
  • 支持增量同步,可不停机迁移
  • 自带 Web UI,操作门槛低
  • 双重数据校验,迁移结果可信赖
  • 视图和函数转换率高

局限性

  • 社区规模不如 pgloader
  • Java 依赖,需要 JRE 运行环境
  • 文档以中文为主,国际化程度有限

9. 类型映射与兼容性注意事项

MySQL 和 PostgreSQL 在数据类型和 SQL 语法上存在差异,迁移时需要重点关注以下映射关系。

数据类型映射

MySQLPostgreSQL说明
TINYINTSMALLINTPG 无 1 字节整型
INT UNSIGNEDBIGINT无符号需升级类型
DATETIMETIMESTAMP注意时区处理
TINYTEXTTEXTPG 统一使用 TEXT
VARCHAR(N)VARCHAR(N)PG 中 TEXT 更常用
BLOBBYTEA二进制数据
BOOLEAN / TINYINT(1)BOOLEANPG 原生布尔类型
DOUBLEDOUBLE PRECISION关键字差异
AUTO_INCREMENTSERIAL / GENERATED ALWAYS AS IDENTITY自增机制不同
ENUMCREATE TYPE ... AS ENUMPG 需显式创建枚举类型

SQL 语法差异

特性MySQLPostgreSQL
标识符引号反引号 `table`双引号 "table"
字符串引号单/双引号均可仅单引号
分页LIMIT offset, countLIMIT count OFFSET offset
GROUP BY宽松模式严格模式(SELECT 列必须在 GROUP BY 中)
连接字符串CONCAT() 忽略 NULL|| 操作符,NULL 传播
日期函数NOW(), CURDATE()NOW(), CURRENT_DATE
存储过程语法差异大PL/pgSQL,需重写

10. 选型建议

场景一:阿里云用户

推荐阿里云 DTS — 全托管、不停机迁移、自动类型映射。如果源库和目标库都在阿里云上,这是最省心的选择。

场景二:腾讯云用户

推荐腾讯云 DTS — 无锁迁移对源库影响最小,适合业务不能中断的场景。

场景三:华为云 / 政企用户

推荐华为云 DRS — 预检查机制完善,分钟级搭建,合规性强。

场景四:自建数据库 / 跨云 / 一次性迁移

推荐 pgloader — 安装极简(Docker 一行命令),COPY 协议高效传输,社区最成熟。适合中小型数据库的一次性迁移。

场景五:自建数据库 / 需要不停机 + 评估报告

推荐 MySQL2PG — 唯一自带兼容性评估报告的开源工具,支持增量同步和 Web UI,适合不停机迁移场景。

场景六:阿里技术栈 + 实时同步

推荐 rds_dbsync — 阿里内部使用的 Go 语言同步工具,Apache 2.0 许可,适合 MySQL→Greenplum/PostgreSQL 的不落地实时迁移。

11. 迁移步骤参考

无论选择哪个工具,一个完整的 MySQL→PostgreSQL 迁移流程通常包含以下步骤:

1. 评估兼容 2. 备份源库 3. 结构迁移 4. 全量数据 5. 增量追平 6. 数据校验 7. 应用适配 8. 割接上线

各步骤要点

数据来源