01 / INSTALL
安装与升级
- 使用 Apple 芯片 Mac(M 系列),系统为 macOS 15 或更新版本。
- 数据库服务端为 MySQL 8+。不同版本之间仍受 MySQL 兼容性约束,不支持高主版本向低主版本迁移。
- 安装包内置数据引擎,无需单独安装 Go、Node.js 或 MySQL Shell。
- 下载 YunJiaDB-0.1.12-macOS-arm64.pkg,建议同时下载校验文件,按文末步骤核对。
- 升级前确认没有正在运行的传输任务,然后退出 YunJiaDB。
- 双击 pkg,按 macOS 安装器提示完成安装。系统可能要求管理员验证。
- 在“应用程序”中打开 YunJiaDB。安装位置为
/Applications/YunJiaDB.app。
升级采用完整替换旧应用的方式。现有数据源、凭据、复制与导出配置、任务记录保留在 ~/Library/Application Support/Yunjia DB/。请勿删除这个配置目录。另一台电脑首次安装不会自动带入原电脑的连接。
本版本使用公司 Developer ID 签名并通过 Apple 公证。安装器的管理员验证用于安装系统应用;应用运行及数据库连接不访问钥匙串。当前未提供 Intel 版本。
02 / QUICK START
首次使用:四步开始
- 添加数据源:进入“数据源”,填写 MySQL 连接信息;需要时启用 SSH 隧道。
- 测试并保存:测试连接,确认地址、凭据和 SSH 主机指纹无误,然后保存。
- 选择操作:“Schema 复制”用于库之间传输;“导出备份”生成本地备份;“导入数据”恢复文件或目录。
- 预览后执行:点击“检查并预览”,核对对象、覆盖范围和路径,再点击“确认并开始”。在“任务记录”查看进度与日志。
复制与导入会覆盖目标范围内的数据。执行前核对目标,并准备所需备份。取消或失败不保证整个 Schema 回滚,已完成的批次及 DDL 可能已经生效。
03 / CONNECTIONS
数据源与 SSH
直接连接 MySQL
在“数据源”添加连接,填写名称、主机、端口、用户名和数据库密码。使用“测试连接”检查可达性和认证,再保存。可浏览连接下的 Schema、表与视图;显示的行数为数据库估算值。
通过 SSH 隧道连接
- 启用 SSH,填写 SSH 主机、端口和用户名。
- 选择密码认证或私钥认证。私钥可选择本机文件,也可粘贴多行私钥内容;加密私钥需提供正确口令。
- 首次遇到未知主机时,核对界面显示的主机指纹,并按提示填写确认。已有
known_hosts记录会参与验证。 - 填写从 SSH 服务端可访问的 MySQL 地址和端口,测试后保存。
未加密私钥可以不填口令。编辑既有连接时,已保存凭据留空会保持原值;若需移除旧私钥口令,使用“清除已保存口令”。粘贴的私钥加密保存在本机,不会在编辑界面回显。
密码和私钥凭据在本机加密保存,密钥也保存在本机。应用与 MySQL Shell 不访问钥匙串。请按实际工作范围为数据库用户配置所需权限。
04 / SCHEMA COPY
复制一个 Schema
- 进入“Schema 复制”,选择源数据源与源 Schema。
- 选择目标数据源与目标 Schema;也可点击“新建 schema”输入新名称。源、目标名称可以不同。
- 按需勾选要排除的表或视图,并调整并发数、读取限速等选项。
- 点击“检查并预览”,核对“将覆盖”“将保留”和已排除对象,查看依赖提示。
- 确认后点击“确认并开始”,在任务记录中查看结果。
复制时如何处理目标对象
| 对象情况 | 处理方式 |
|---|---|
| 源、目标存在同名表 | 覆盖目标表的结构和数据。 |
| 源有、目标缺失 | 创建对象并传输数据。 |
| 目标独有表 | 保留,不因复制删除整个目标 Schema。 |
| 被排除的表或视图 | 不复制结构和数据;目标同名对象保持不变。 |
完整复制支持表、索引、外键、视图、触发器、存储过程、函数和事件;不复制账户与权限。显式 DEFINER 调整为目标连接用户。无法可靠处理的动态 SQL 或跨库引用会报错。
排除与依赖
“全选排除”“反选”“清空排除”作用于全部表与视图,不受搜索过滤影响。完整已排除清单显示在页面,关联视图的自动排除结果显示在预览中。
依赖排除对象的源视图会自动跳过;源外键跨越排除边界时阻止执行。目标保留对象依赖被覆盖对象时也会检查冲突。存在排除项时不覆盖过程、函数和事件,只复制所选表的触发器。
目标 local_infile 关闭时,复制自动使用 SQL 兼容路径。两条路径遵循相同的覆盖、保留与排除规则。复制配置会自动保存,下次进入时恢复。
05 / EXPORT
导出压缩备份
- 进入“导出备份”,选择源连接与 Schema。
- 选择导出格式,默认是“单个 SQL 文件”。
- 选择新的保存路径和压缩方式,按需排除表或视图。
- 点击“检查并预览”,核对实际导出对象、格式、路径与排除项,再确认开始。
- 任务完成后点击“打开所在目录”,Finder 会定位到备份。
| 格式 | 输出内容 | 恢复方式 |
|---|---|---|
| 单个 SQL 文件 | 不压缩:.sqlgzip: .sql.gzZstandard: .sql.zst | 选择“SQL 文件”导入,无需解压,也无需 local_infile。 |
| 高速分块备份目录 | MySQL Shell 元数据、DDL 和独立数据块;支持 zstd、gzip 和不压缩。 | 选择“备份目录”导入;目标需开启 local_infile。 |
压缩直接写入磁盘。单文件 SQL 使用单连接、批量 SQL,通常比并行分块目录慢。单文件失败或取消会清理该任务的临时文件,完成并校验后才发布最终文件;已有备份不会被覆盖。
gzip 是压缩方式,不能把分块目录自动合并成一个 SQL 文件。需要单文件时,请先选择“单个 SQL 文件”。导出配置与复制配置分别自动保存。
部分导出不包含过程、函数和事件,仅包含所选表的触发器;依赖排除表的视图也会跳过。全部排除时会阻止空导出。
06 / IMPORT
导入到指定 Schema
导入 SQL 文件
- 进入“导入数据”,切换为“SQL 文件”,选择
.sql、.sql.gz或.sql.zst。 - 选择目标连接与目标 Schema,也可新建目标 Schema。
- 点击“检查并预览”。应用预扫描语句、验证目标范围与依赖,准备通过校验的语句快照。
- 核对预览中的覆盖与保留对象,然后确认执行。
SQL 按文件中的语句顺序执行,支持标准 MySQL 单 Schema 转储及 DELIMITER 存储程序边界。CREATE DATABASE / USE 重定向到所选目标;不会执行 DROP DATABASE、账户授权、客户端系统命令或任意全局变量修改。标准转储中的 GTID 与二进制日志元数据会跳过。
只有 INSERT 的数据文件使用目标现有表结构,先清空涉及表的数据再导入,其他表保留。单条 SQL 上限为 64 MiB,目标的 max_allowed_packet 也需满足要求。
导入备份目录
- 切换为“备份目录”,选择完整的 MySQL Shell 导出目录,无需手动解压数据块。
- 确认目录含完成标记
@.done.json;不完整备份不能导入。 - 选择目标连接与 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
- 原电脑:在“数据源”点击“导出配置”,设置并确认至少 8 个字符的口令,保存
.yunjia-connections文件。 - 把文件传到新电脑,并妥善保存口令。
- 新电脑:点击“导入配置”,选择该文件,输入同一口令。
- 导入只新增连接;同名连接自动加“导入 2”等后缀,不覆盖已有配置。
- 使用 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 · 票据已附加 |
| 公证提交 ID | 98c7f672-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 实际安装验证。