navicat中不存在“模型连接”,实际应为按环境(dev/test/prod)创建的独立连接配置文件;每个文件保存完整参数,命名体现环境,切换时需确认状态栏连接名并关闭旧标签页以防误操作。

什么是“模型连接”——先别被名字带偏
Navicat Premium 里没有叫“模型连接”的官方概念。你实际想配的,是针对不同环境(比如 dev、test、prod)的**独立连接配置文件**,每个文件保存一套完整的主机、端口、用户、数据库名、SSH 隧道等参数。它们不是“模型”,而是可切换、可复用、互不干扰的实际连接快照。
用连接配置文件区分环境,而不是改同一个连接
很多人一开始会反复编辑同一个 MySQL 连接,把 host 改来改去,结果一不小心连错库、删错数据。正确做法是为每个环境新建一个配置文件:
- 右键已有的 MySQL 连接 → 选择 “复制连接”(不是“编辑”)
- 双击新连接 → 在弹出窗口中修改
Host、Port、User、Password和Database(比如myapp_dev/myapp_prod) - 在连接名上体现环境,例如:
mysql_dev_localhost、mysql_prod_aws - 如果用了 SSH 隧道,
SSH Host和SSH Port也要按环境分别填,不要共用
这样你随时双击任一连接,就进对应环境,不会手抖点错。
连接名和数据库名不一致?这是常见误操作
连接名(如 mysql_prod_aws)只是 Navicat 里显示的标签,它和你连上去后看到的数据库列表无关。真正决定你看到哪些库的,是连接配置里的 Database 字段(即“默认数据库”)和 MySQL 用户权限:
- 如果你希望连接后只看到
myapp_prod库,就把Database填成它;留空则列出所有有权限的库 - 但注意:MySQL 用户本身必须有该库的
SELECT权限,否则即使填了也看不到——这时 Navicat 会报错Access denied for user ... to database 'myapp_prod' - 生产环境建议把
Database留空,避免误操作影响其他库;开发环境可填具体库名加快定位
环境间快速切换时容易忽略的细节
切换连接不是“点一下就完事”。Navicat 会在后台关闭旧连接、建立新连接,这个过程涉及几个隐性状态:
- 当前打开的查询窗口、表结构页、ER 图等,切换连接后**不会自动刷新或迁移**,仍停留在原库上下文,可能执行 SQL 却跑到另一个库去
- 已打开的
Query标签页,顶部显示的是它最初创建时所在的连接名,但执行时用的是当前活动连接——这点极易引发误执行 - 如果开了多个连接,记得检查左下角状态栏是否显示了正确的连接名,别光看标签页标题
最稳妥的做法:每次切换环境前,关掉所有已打开的查询和对象页,再双击目标连接。复杂操作(比如跑迁移脚本)前,务必先确认状态栏显示的连接名和预期一致。











