最可靠的方式是手动编辑data-sources.json和credentials-config.json两个文件:先复制目标连接的完整JSON对象并修改id、name等字段,再同步在credentials-config.json中按新id复制对应密钥条目,确保二者id严格一致,否则密码无法自动填充。

直接复制已有数据库连接在 DBeaver 里不支持“右键 → 复制”这种操作,但可以通过手动编辑配置文件实现完全一致的连接克隆——这是最可靠、最可控的方式。
data-sources.json 是连接配置的唯一真相源
DBeaver 所有已保存的数据库连接都序列化存放在 data-sources.json 文件中,路径通常为:
- Windows:
%APPDATA%\DBeaverData\General\connections\data-sources.json - macOS:
~/Library/DBeaverData/General/connections/data-sources.json - Linux:
~/.local/share/DBeaverData/General/connections/data-sources.json
这个文件是纯 JSON,每条连接是一个 datasource 对象,含 id、name、connection(主机/端口/数据库名等)、configuration(驱动、SSL、超时等)字段。要“复制连接”,本质就是复制并修改其中一段 JSON。
操作建议:
- 先关闭 DBeaver,避免写入冲突
- 用 VS Code 或其他支持 JSON 格式校验的编辑器打开
data-sources.json - 找到目标连接对象(靠
name字段识别),Ctrl+C 整个对象(从{到匹配的}) - 粘贴到同级位置,修改新对象的
id(必须全局唯一,可加-copy后缀)、name(如 “prod-copy”)、connection/host或connection/databaseName等实际需要变更的字段 - 保存文件,重启 DBeaver 即可见新连接
credentials-config.json 决定密码能否自动填充
如果原连接启用了“保存密码”,真实凭证其实存在另一个文件:credentials-config.json。它按 datasource.id 加密存储用户名和密码。只改 data-sources.json 而不处理这个文件,新连接会提示“密码为空”或反复弹窗要求输入。
稳妥做法:
- 确认原连接的
id(比如mysql-prod-abc123) - 在
credentials-config.json中找到对应 key,复制整条"mysql-prod-abc123": { ... }条目 - 粘贴并把 key 改成新连接的
id(如mysql-prod-abc123-copy) - 两个文件保持 id 严格一致,否则密码不会生效
修改连接时最容易被忽略的三个地方
即使只是微调一个已有连接(比如换 host 或端口),也常因以下细节失败:
-
connection/url字段若存在,优先级高于host/port—— 修改后务必删掉该字段,否则参数变更无效 - MySQL 连接若启用了 SSL,
configuration/ssl下的useSSL和requireSSL必须显式设为false才能禁用,仅删配置项不管用 - PostgreSQL 的
connection/databaseName若为空,会默认连到与用户名同名的库;复制时若漏填,可能连错库且无报错提示
真正麻烦的不是复制动作本身,而是 id、credential key、URL 逻辑三者之间的隐式耦合——改错一个,轻则密码不生效,重则连接静默失败,日志里还不报具体原因。


















