必须先完成结构比对并确认“Comparison completed successfully”,再点击比对结果窗口右上角“Export”图标导出HTML;跳过比对或操作错误将导致空白页、无SQL或乱码等问题。

必须先完成结构比对,再点击右上角“Export”图标导出;直接点导出按钮或跳过比对步骤会失败,且生成的 HTML 不含可执行 SQL。
导出前必须完成结构比对并确认状态
Navicat 的「导出为 HTML」功能不独立存在,它只读取当前已执行的比对结果。如果没点过 Compare,或比对中途报错中断,点击导出会提示 there is no comparison result to export 或弹出空白页。
- 右键数据库 →
Structure Synchronization(不是 Data Synchronization) - 在设置中务必勾选
Compare structure only,取消Compare data(否则耗时剧增、报告混杂) - 点击
Compare,等待状态栏显示Comparison completed successfully且有明确提示:Differences found或No differences - 此时才可进行导出操作——入口不在右键菜单,也不在下方列表区
HTML 导出按钮位置和常见失败原因
导出图标位于比对结果窗口的标题栏右侧,是一个带箭头的方框(悬停提示为 Export),不是工具栏上的 Generate Report 按钮。后者生成的是 Navicat 内部报告视图,不能直接保存为 HTML 文件。
- 点击后无反应 → 检查浏览器弹窗拦截是否启用(Navicat 内置导出器依赖本地 HTML 查看器)
- 导出文件打开为空白 → 可能因手动勾选了
Include system objects但账号无权限访问information_schema,导致生成中断 - 中文字段名乱码 → 提前在
Tools → Options → Environment → Default encoding中设为UTF-8 - 路径含中文或空格 → 导致
file://协议在 Chrome/Edge 中打不开,建议用纯英文+下划线命名
HTML 报告的内容边界与替代方案
该 HTML 是只读快照,仅列出对象级差异(如「源库有、目标库无」的表/索引/外键),不包含任何 ALTER TABLE、DROP COLUMN 等可执行语句。它也不反映索引顺序、分区定义、JSON 字段类型细节等易被忽略的 DDL 差异。
立即学习“前端免费学习笔记(深入)”;
- 想看变更 SQL:全选差异项 → 右键 →
Save as SQL File,保存为sync.sql - 想预览某张表的同步效果:右键该表 →
Synchronize to Database→ 走到第三步即可看到预估ALTER语句 - CI/CD 场景慎用此 HTML:推荐改用
mysqldiff(输出稳定、支持--format=html)或pt-table-sync --print(行级校验补充)
真正容易被忽略的是:HTML 报告完全不体现你当时比对时启用的选项——比如是否勾选了 Compare column comments 或 Compare foreign keys。如果这些被关掉,报告里“无差异”可能只是因为没比,而不是真一致。



















