Navicat Premium 不支持“一键切换多租户异构数据库”,所谓“一键”实为连接切换、模式切换、模型上下文切换三类独立操作的误称;双击导航栏数据库名仅展开节点,不改变活动连接;正确做法是通过连接菜单或左侧列表手动选择已配置的、命名规范且含SSL设置的专用连接。

Navicat Premium 本身不支持“一键切换多租户异构数据库”——这个动作在技术上根本不存在。所谓“一键切换”,实际是多个独立操作的组合,且必须分清「连接切换」「模式切换」「模型上下文切换」三类完全不同的行为,混用必出错。
为什么双击对象导航栏里的数据库名没反应
双击 database_name 只会展开/折叠节点,不会改变当前活动连接或模型上下文。这是 Navicat Data Modeler 和 Navicat Premium 共有的设计逻辑:对象导航栏是只读结构浏览器,不是连接控制器。你在 Navicat Premium 中看到的“数据库列表”,本质是当前已连接实例下的 catalog/schemas 列表,它不承载切换能力。
- 真正生效的切换,必须通过左上角「连接」菜单或左侧连接列表中右键选择已有连接
- 如果目标租户(如 OB Cloud 的 MySQL 模式租户、GaussDB 的不同 schema)尚未建立连接,双击不可能自动创建连接
- 异构库(MySQL vs PostgreSQL)之间无法共用同一连接,必须分别配置并手动切换
如何正确管理多租户与异构库的连接入口
Navicat Premium 的「连接配置文件」功能才是多租户异构场景的基础设施。它不是快捷方式,而是权限+环境+协议的封装单元。
- 每个租户/环境应单独建一个连接,例如:
gaussdb-prod-dba、obcloud-dev-appuser、pg-test-readonly - 连接名需体现数据库类型、环境、角色三要素,避免用
db1、test这类模糊命名 - 对云数据库(如 OB Cloud、华为云 GaussDB),务必在连接配置中启用 SSL 并指定 CA 证书路径,否则连接成功但查询失败
- MySQL 模式租户可直接选
OceanBase 企业版(MySQL 模式)类型;Oracle 模式租户目前仅支持 Windows/macOS 客户端中的特定版本,macOS 下暂不支持
同步或传输数据时最容易忽略的上下文陷阱
即使你已连上两个库,执行「数据传输」或「结构同步」前,仍可能因上下文错位导致失败。这不是 Navicat 的 bug,而是协议层强制校验的结果。
-
Unsupported database type for synchronization错误,说明源模型类型(如 PostgreSQL 15)与目标连接的实际数据库类型(如 MySQL 8.0)不匹配 - 目标库若为 OB Cloud 或 GaussDB 主备版,其默认 schema 名(如
sys、oracle)必须与模型中表定义的schema字段完全一致,大小写敏感 - 使用「数据传输」跨异构库(如 MySQL → PostgreSQL)时,Navicat 不会自动转换
JSON、TIMESTAMP等类型,必须手动映射字段并勾选「强制 UTF8 编码」 - 目标库若未提前创建 schema,Navicat 不会自动创建,只会报错
schema "xxx" does not exist
真正的效率提升不来自“一键”,而来自连接命名规范、SSL 配置固化、以及每次打开「数据传输」前下意识核对右上角「当前连接」和「目标连接」是否真的指向你认为的那个租户——漏掉任意一项,后面所有操作都是在往错误的方向加速。


















