YunJiaDB
云佳创想科技有限公司

MYSQL · COPY / BACKUP / RESTORE

让数据迁移
有序发生。

面向 Mac 的 MySQL 数据传输工具。连接数据库,复制 Schema,导出压缩备份,再恢复到指定环境。

Apple Silicon · M 系列macOS 15+MySQL 8+内置 MySQL Shell

01 / INSTALL

安装与升级

  • 使用 Apple 芯片 Mac(M 系列),系统为 macOS 15 或更新版本。
  • 数据库服务端为 MySQL 8+。不同版本之间仍受 MySQL 兼容性约束,不支持高主版本向低主版本迁移。
  • 安装包内置数据引擎,无需单独安装 Go、Node.js 或 MySQL Shell。
  1. 下载 YunJiaDB-0.1.12-macOS-arm64.pkg,建议同时下载校验文件,按文末步骤核对。
  2. 升级前确认没有正在运行的传输任务,然后退出 YunJiaDB。
  3. 双击 pkg,按 macOS 安装器提示完成安装。系统可能要求管理员验证。
  4. 在“应用程序”中打开 YunJiaDB。安装位置为 /Applications/YunJiaDB.app。

升级采用完整替换旧应用的方式。现有数据源、凭据、复制与导出配置、任务记录保留在 ~/Library/Application Support/Yunjia DB/。请勿删除这个配置目录。另一台电脑首次安装不会自动带入原电脑的连接。

本版本使用公司 Developer ID 签名并通过 Apple 公证。安装器的管理员验证用于安装系统应用;应用运行及数据库连接不访问钥匙串。当前未提供 Intel 版本。

02 / QUICK START

首次使用:四步开始

  1. 添加数据源:进入“数据源”,填写 MySQL 连接信息;需要时启用 SSH 隧道。
  2. 测试并保存:测试连接,确认地址、凭据和 SSH 主机指纹无误,然后保存。
  3. 选择操作:“Schema 复制”用于库之间传输;“导出备份”生成本地备份;“导入数据”恢复文件或目录。
  4. 预览后执行:点击“检查并预览”,核对对象、覆盖范围和路径,再点击“确认并开始”。在“任务记录”查看进度与日志。

复制与导入会覆盖目标范围内的数据。执行前核对目标,并准备所需备份。取消或失败不保证整个 Schema 回滚,已完成的批次及 DDL 可能已经生效。

03 / CONNECTIONS

数据源与 SSH

直接连接 MySQL

在“数据源”添加连接,填写名称、主机、端口、用户名和数据库密码。使用“测试连接”检查可达性和认证,再保存。可浏览连接下的 Schema、表与视图;显示的行数为数据库估算值。

通过 SSH 隧道连接

  1. 启用 SSH,填写 SSH 主机、端口和用户名。
  2. 选择密码认证或私钥认证。私钥可选择本机文件,也可粘贴多行私钥内容;加密私钥需提供正确口令。
  3. 首次遇到未知主机时,核对界面显示的主机指纹,并按提示填写确认。已有 known_hosts 记录会参与验证。
  4. 填写从 SSH 服务端可访问的 MySQL 地址和端口,测试后保存。

未加密私钥可以不填口令。编辑既有连接时,已保存凭据留空会保持原值;若需移除旧私钥口令,使用“清除已保存口令”。粘贴的私钥加密保存在本机,不会在编辑界面回显。

密码和私钥凭据在本机加密保存,密钥也保存在本机。应用与 MySQL Shell 不访问钥匙串。请按实际工作范围为数据库用户配置所需权限。

04 / SCHEMA COPY

复制一个 Schema

  1. 进入“Schema 复制”,选择源数据源与源 Schema。
  2. 选择目标数据源与目标 Schema;也可点击“新建 schema”输入新名称。源、目标名称可以不同。
  3. 按需勾选要排除的表或视图,并调整并发数、读取限速等选项。
  4. 点击“检查并预览”,核对“将覆盖”“将保留”和已排除对象,查看依赖提示。
  5. 确认后点击“确认并开始”,在任务记录中查看结果。

复制时如何处理目标对象

对象情况处理方式
源、目标存在同名表覆盖目标表的结构和数据。
源有、目标缺失创建对象并传输数据。
目标独有表保留,不因复制删除整个目标 Schema。
被排除的表或视图不复制结构和数据;目标同名对象保持不变。

完整复制支持表、索引、外键、视图、触发器、存储过程、函数和事件;不复制账户与权限。显式 DEFINER 调整为目标连接用户。无法可靠处理的动态 SQL 或跨库引用会报错。

排除与依赖

“全选排除”“反选”“清空排除”作用于全部表与视图,不受搜索过滤影响。完整已排除清单显示在页面,关联视图的自动排除结果显示在预览中。

依赖排除对象的源视图会自动跳过;源外键跨越排除边界时阻止执行。目标保留对象依赖被覆盖对象时也会检查冲突。存在排除项时不覆盖过程、函数和事件,只复制所选表的触发器。

目标 local_infile 关闭时,复制自动使用 SQL 兼容路径。两条路径遵循相同的覆盖、保留与排除规则。复制配置会自动保存,下次进入时恢复。

05 / EXPORT

导出压缩备份

  1. 进入“导出备份”,选择源连接与 Schema。
  2. 选择导出格式,默认是“单个 SQL 文件”。
  3. 选择新的保存路径和压缩方式,按需排除表或视图。
  4. 点击“检查并预览”,核对实际导出对象、格式、路径与排除项,再确认开始。
  5. 任务完成后点击“打开所在目录”,Finder 会定位到备份。
格式输出内容恢复方式
单个 SQL 文件不压缩:.sql
gzip:.sql.gz
Zstandard:.sql.zst
选择“SQL 文件”导入,无需解压,也无需 local_infile。
高速分块备份目录MySQL Shell 元数据、DDL 和独立数据块;支持 zstd、gzip 和不压缩。选择“备份目录”导入;目标需开启 local_infile。

压缩直接写入磁盘。单文件 SQL 使用单连接、批量 SQL,通常比并行分块目录慢。单文件失败或取消会清理该任务的临时文件,完成并校验后才发布最终文件;已有备份不会被覆盖。

gzip 是压缩方式,不能把分块目录自动合并成一个 SQL 文件。需要单文件时,请先选择“单个 SQL 文件”。导出配置与复制配置分别自动保存。

部分导出不包含过程、函数和事件,仅包含所选表的触发器;依赖排除表的视图也会跳过。全部排除时会阻止空导出。

06 / IMPORT

导入到指定 Schema

导入 SQL 文件

  1. 进入“导入数据”,切换为“SQL 文件”,选择 .sql、.sql.gz 或 .sql.zst。
  2. 选择目标连接与目标 Schema,也可新建目标 Schema。
  3. 点击“检查并预览”。应用预扫描语句、验证目标范围与依赖,准备通过校验的语句快照。
  4. 核对预览中的覆盖与保留对象,然后确认执行。

SQL 按文件中的语句顺序执行,支持标准 MySQL 单 Schema 转储及 DELIMITER 存储程序边界。CREATE DATABASE / USE 重定向到所选目标;不会执行 DROP DATABASE、账户授权、客户端系统命令或任意全局变量修改。标准转储中的 GTID 与二进制日志元数据会跳过。

只有 INSERT 的数据文件使用目标现有表结构,先清空涉及表的数据再导入,其他表保留。单条 SQL 上限为 64 MiB,目标的 max_allowed_packet 也需满足要求。

导入备份目录

  1. 切换为“备份目录”,选择完整的 MySQL Shell 导出目录,无需手动解压数据块。
  2. 确认目录含完成标记 @.done.json;不完整备份不能导入。
  3. 选择目标连接与 Schema,预览并确认执行。目录导入可使用多线程。

目录导入需要目标服务端 local_infile=ON。应用不修改服务端全局配置;若不能开启,请使用单文件 SQL 备份与 SQL 文件导入。

SQL 导入面向转储恢复。多 Schema、改变解析方式的 SQL_MODE 或不支持的语句会被拒绝。自动批次事务仅回滚失败批次;文件自身事务控制优先。请勿把取消任务视为整库恢复原状。

07 / TRANSFER OPTIONS

传输选项与任务记录

  • 不锁定源数据库:复制与分块导出默认开启,不主动申请全局读锁、显式表锁或备份锁。并行读取不保证跨表同一时点快照,该模式只接受 InnoDB 表。普通查询仍可能产生元数据锁和资源消耗。
  • 一致性模式:关闭“不锁定源数据库”会切换为一致性模式,建立快照时可能短暂阻塞写入;非 InnoDB 表仍无事务快照保证。单文件 SQL 导出固定使用单连接 InnoDB 事务快照读取。
  • 并发数:可选择 1、2、4、8、16、32,界面推荐 4。仅适用于高速路径;SQL 文件导入、单文件 SQL 导出和兼容复制使用单连接批量处理。
  • 读取限速:0 表示不限速,支持 k、M、G,例如 10M。高速路径显示为每线程读取限速。
  • 任务记录:同一时间只运行一个传输任务。可查看阶段、进度、耗时、日志及错误,运行中可取消。保留最近 100 条任务,每条最多 200 行日志。

复制使用本机临时备份或 SQL 快照衔接读写,请保留足够磁盘空间。性能受网络、源库、目标库、磁盘和数据形态影响,不能用线程数推算固定完成时间。

08 / PORTABLE CONNECTIONS

把连接配置迁移到另一台 Mac

  1. 原电脑:在“数据源”点击“导出配置”,设置并确认至少 8 个字符的口令,保存 .yunjia-connections 文件。
  2. 把文件传到新电脑,并妥善保存口令。
  3. 新电脑:点击“导入配置”,选择该文件,输入同一口令。
  4. 导入只新增连接;同名连接自动加“导入 2”等后缀,不覆盖已有配置。
  5. 使用 SSH 私钥的连接,需在新电脑重新选择本机私钥文件,或重新粘贴私钥正文,再测试连接。

迁移文件使用口令加密,包含连接信息、数据库密码、SSH 密码及私钥口令;不包含本机加密密钥、SSH 私钥文件或粘贴的私钥正文。SSH 主机指纹与私钥来源设置保留。

忘记口令后无法解密这份文件;可回原电脑重新导出。安装包和本页面不包含用户连接配置或凭据。

09 / TROUBLESHOOTING

常见问题

安装仍提示 Apple 无法验证?

重新下载本页的最终公证包,并核对 SHA-256。此前分发过同名但未附票据的包,请替换旧副本;仅有相同文件名不能证明是同一个包。最终包已通过本机 Gatekeeper 检查,但其他 Mac 的实际安装仍待验证。

连接失败或 SSH 指纹不一致?

检查主机、端口、账号、网络可达性及 SSH 认证信息。指纹变化应先向服务器管理方核实。加密私钥口令错误时需提供正确口令。

目录导入报告 local_infile 未开启?

由数据库管理员按需要调整服务端设置,或重新生成单文件 SQL 备份并选择“SQL 文件”导入。复制在关闭时会自动采用兼容路径。

预检查报告外键、视图或保留对象冲突?

按提示调整排除范围或处理对象依赖,再重新预览。依赖检查保护目标保留对象,不能跳过。无法可靠处理的跨库引用或动态 SQL 需先整理转储文件。

SQL_MODE、超大语句或 packet 错误?

兼容路径不支持 ANSI_QUOTES / NO_BACKSLASH_ESCAPES 等解析模式。单条 SQL 不得超过 64 MiB,导出单行不得超过约 60 MiB;可在生成转储时减小 INSERT 批量,或由管理员核对目标 packet 限制。

任务失败、取消或应用被关闭后怎么办?

先在“任务记录 → 查看日志”确认失败阶段和已执行范围,再检查目标实际状态并决定恢复方式。重新执行复制或导入可能再次覆盖数据。启动时未完成任务会标记为中断。

内置引擎显示“需要配置”?

检查是否完整安装整个应用。在“应用设置”中可查看 MySQL Shell 检测结果,必要时选择兼容的 mysqlsh 路径并点击“保存并检测”。SQL 文件导入由应用直接执行。

完成导出后无法定位文件?

在任务卡片或日志窗口点击“打开所在目录”。若备份已被移动或删除,界面会提示错误,请检查实际保存路径。

10 / RELEASE

版本信息与文件校验

0.1.12 包含标准 MySQL 转储 GTID / 二进制日志元数据兼容处理,以及目录预检查与正式加载进度状态隔离修复。本次分发使用已经完成 Developer ID 签名、Apple 公证并附加票据的安装包。

文件YunJiaDB-0.1.12-macOS-arm64.pkg
精确大小163,728,086 字节(约 156 MiB)
签名主体Changsha Yunjia Chuangxiang Technology Co., Ltd
Team ID:DKPVJ7273S
公证完成确认2026-10-10 · Accepted · 票据已附加
公证提交 ID98c7f672-7ab7-4aaa-9dd5-556c487f5e51

最终安装包 SHA-256

61eb1e3b1c40e73e0cda5c06dd64b3047f9500b00cd996fab0303ea07f846688

请将安装包与 同名 .sha256 文件 放在同一个目录。在“终端”进入该目录后执行:

shasum -a 256 -c YunJiaDB-0.1.12-macOS-arm64.pkg.sha256

输出 YunJiaDB-0.1.12-macOS-arm64.pkg: OK 表示文件与本次分发的校验和一致。

发布验证:安装包签名、公证票据、本机 Gatekeeper 与哈希校验均通过;此版本 Go 竞态检查、前端正式构建及隔离 MySQL 8.4 集成验证已通过。尚未在另一台 Mac 实际安装验证。