Navicat 15 的 Queries 默认不参与同步,必须登录 navicat.com/cloud 进入项目 Settings → Synchronization Scope 中手动勾选 Queries 和 Code Snippets;桌面端需右键项目选择“从云重新加载”才能拉取,且同步仅传输 SQL 文本与元数据,不校验语法兼容性、不迁移依赖对象。

Navicat 15 无法同步团队共享项目中的查询,不是账号或网络问题,而是 Queries 默认不参与同步 —— 即使你开了 Navicat Cloud 开关,也必须手动勾选它。
Queries 同步开关藏在网页端「同步范围」设置里
桌面端的「同步已开启」只是总闸,真正控制每类对象是否上传/下载的是网页端 Portal 的细粒度配置:
- 登录
navicat.com/cloud→ 进入对应项目 → 点右上角「Settings」→「Synchronization Scope」 - 必须显式勾选
Queries(还有Code Snippets,如果用了) - 光开「Enable synchronization」或只勾
Favorites、Grouping,Queries 仍不会动 - macOS 用户若用 Apple ID 登录系统,可能静默登录失败:进 Navicat 设置 → 账号 → 先「退出」再重输 Navicat ID 和密码
桌面端不会自动拉取网页端新建的查询
Navicat Cloud Portal 和桌面客户端是两个独立通道,网页端改完不会推送到本地:
- 在桌面端右键对应项目 → 选「
从云重新加载」(注意不是「刷新」) - 「刷新」只更新本地缓存,比如分组折叠状态;「从云重新加载」才真正发起一次完整 pull
- 若右键菜单里没这个选项,说明当前连接未成功绑定到云项目:检查右下角状态栏是否显示「
Synced」而非「Paused」或「Syncing…」
同步后查询执行报错:路径、权限、字符集全不对
Queries 同步的只是 SQL 文本和元数据(名称、分组、标星),不保证可执行:
- 查询中硬编码的数据库名、表名、字段别名,若源库和目标库结构不一致,执行就报
Unknown column或Table doesn't exist - 含用户变量(
@var)、临时表(CREATE TEMPORARY TABLE)的查询,在另一环境大概率失败 - 字符集不匹配时,中文注释或 LIKE 模糊匹配可能失效:检查连接高级设置里是否启用
charset=utf8mb4,且两端 MySQL 的collation_connection一致 - 若查询依赖某个视图或函数,而该对象未同步(Navicat 不同步 Views/Functions),也会直接报错
最常被忽略的一点:Queries 同步不校验语法兼容性。你在 MySQL 8.0 写的 JSON_TABLE 查询,同步到连着 MySQL 5.7 的同事电脑上,双击运行就是 ERROR 1305 (42000): FUNCTION does not exist —— Navicat 不预警,也不过滤。











