DBeaver 26.2.3 配置与 CLI 参数详解
DBeaver 26.2.3 配置体系与命令行速查:dbeaver.ini 全文逐项解读(JVM 内存修改 ps 验证)、工作区/驱动缓存/secure 目录结构、全部启动参数与 -con 连接规格键位、auth-models 等子命令实测回显,含 headless 报错等真实排障。
DBeaver 26.2.3 配置与 CLI 参数详解
目标:系统拆解 DBeaver Community 26.2.3 的配置体系(
dbeaver.ini、全局数据目录、工作区)与命令行参数(启动参数、-con连接规格、子命令),每项配置与参数均给出 Ubuntu 22.04 实测回显或实测结论,可作为日常调参与排障的速查手册。
一、环境信息
- 操作系统:Ubuntu 22.04 LTS(x86_64)
- 软件版本:DBeaver Community 26.2.3(构建号 26.2.3.202610181708),deb 安装(
/usr/bin/dbeaver→/usr/share/dbeaver-ce/dbeaver) - 运行时:发行包内置 Temurin JRE 25.0.4.1+1
- 实测方式:命令行参数均在本机逐条执行并记录回显;连接类参数配合 PostgreSQL 16.15 / MySQL 8.0.46 目标库实测(实战细节见《DBeaver 26.2.3 数据库连接与操作实战》)
二、配置体系概览
DBeaver 的配置分三层,先建立全景再逐层拆解:
| 层 | 位置 | 内容 | 生效方式 |
|---|---|---|---|
| 安装层 | /usr/share/dbeaver-ce/(deb/tar) | 程序本体、dbeaver.ini(JVM/启动参数)、plugins/ | 改后重启 |
| 全局层 | ~/.local/share/DBeaverData/ | 工作区指针、驱动缓存、密钥环、产品配置 | 重启生效 |
| 工作区层 | ~/.local/share/DBeaverData/workspace6/ | 连接、项目、SQL 脚本、运行日志、实例锁 | 改后重启/重新打开 |
全局数据目录实测结构(find ~/.local/share/DBeaverData -maxdepth 3 节选,去除瞬态文件):
/root/.local/share/DBeaverData
/root/.local/share/DBeaverData/drivers
/root/.local/share/DBeaverData/drivers/maven
/root/.local/share/DBeaverData/drivers/maven/maven-central
/root/.local/share/DBeaverData/secure
/root/.local/share/DBeaverData/secure/secure_storage
/root/.local/share/DBeaverData/settings
/root/.local/share/DBeaverData/settings/product-config.json
/root/.local/share/DBeaverData/workspace6
/root/.local/share/DBeaverData/workspace6/.metadata
/root/.local/share/DBeaverData/workspace6/.metadata/.lock
/root/.local/share/DBeaverData/workspace6/.metadata/.log
/root/.local/share/DBeaverData/workspace6/.metadata/dbeaver-instance.properties
/root/.local/share/DBeaverData/workspace6/.metadata/dbeaver-workspace.properties
/root/.local/share/DBeaverData/workspace6/General
/root/.local/share/DBeaverData/workspace6/General/.dbeaver
/root/.local/share/DBeaverData/workspace6/General/.project
逐项说明:
drivers/maven/maven-central/:按 Maven 坐标组织的 JDBC 驱动缓存(首次连接自动下载,实测 PostgreSQL 42.7.13、MySQL Connector/J 8.2.0 均落在这里);离线迁移直接拷贝该目录;secure/secure_storage:密钥环,保存的连接口令加密存放于此(不在 data-sources.json 明文中);settings/product-config.json:产品级配置(更新渠道、AI 设置等);workspace6/.metadata/:工作区运行态——.log主日志(连接报错都在这)、.lock工作区互斥锁、dbeaver-instance.properties(单实例通信注册)、dbeaver-debug-*.log崩溃/调试转储;workspace6/General/:默认项目——.dbeaver/data-sources.json(连接配置)、SQL 脚本目录(Scripts);.project为 Eclipse 工程标记。
💡 说明:备份/迁移只盯
~/.local/share/DBeaverData/一个目录即可(连接、脚本、驱动、口令全在内);「重置 DBeaver」= 关闭程序后删除该目录(会丢全部连接与脚本,请先备份)。多工作区并存用-data参数指定其他路径(见五、5.4)。
三、dbeaver.ini 详解(JVM 与启动参数)
dbeaver.ini 是 Eclipse 体系的启动配置文件,deb 安装位于 /usr/share/dbeaver-ce/dbeaver.ini,tar 包位于解压目录内。本环境实测全文:
-startup
plugins/org.eclipse.equinox.launcher_1.7.0.v20250519-0528.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.2.1300.v20250728-0841
-data
@noDefault
-vmargs
-Xms64m
-Xmx1024m
--add-modules=ALL-SYSTEM
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.lang.ref=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.nio.charset=ALL-UNNAMED
--add-opens=java.base/java.text=ALL-UNNAMED
--add-opens=java.base/java.time=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED
--add-opens=java.base/sun.net.dns=ALL-UNNAMED
--add-opens=java.base/sun.net.util=ALL-UNNAMED
--add-opens=java.base/sun.net.spi=ALL-UNNAMED
--add-opens=java.desktop/javax.swing=ALL-UNNAMED
--add-opens=java.logging/java.util.logging=ALL-UNNAMED
-Dorg.eclipse.swt.browser.DefaultType=webkit
逐项说明:
| 配置项 | 说明 |
|---|---|
-startup / --launcher.library | Eclipse 启动器插件 jar 与平台原生库路径(升级版本号会变,勿手改) |
-data @noDefault | 不在 ini 中硬编码默认工作区,由程序按平台默认位置解析(~/.local/share/DBeaverData/workspace6),也可被命令行 -data 覆盖 |
-vmargs | 之后的行全部作为 JVM 参数传递 |
-Xms64m / -Xmx1024m | 初始堆 64 MiB、最大堆 1024 MiB——多连接/大结果集卡顿的主调点 |
--add-modules=ALL-SYSTEM + 一组 --add-opens | JDK 17+ 模块封装下的反射开放清单(Eclipse/SWT 依赖),删掉会启动失败 |
-Dorg.eclipse.swt.browser.DefaultType=webkit | 内嵌浏览器用 WebKitGTK(Linux 上欢迎页/登录页需要 libwebkit2gtk 运行库) |
JVM 内存调整实测(最常用的改动):把最大堆从 1024m 调到 768m 验证生效路径——
sudo sed -i "s/^-Xmx1024m$/-Xmx768m/" /usr/share/dbeaver-ce/dbeaver.ini
grep -n "Xmx" /usr/share/dbeaver-ce/dbeaver.ini
实测回显:
35:-Xmx768m
启动 DBeaver 并连接一个 PostgreSQL 库后,用进程命令行复核实际生效值(实测回显):
ps -ef | grep "[j]ava" | grep -o "\-Xm[sx][0-9]*m" | sort -u
-Xms64m
-Xmx768m
⚠️ 注意:ini 文件每行一个参数,不能合并写;
-vmargs之后的行才归 JVM 管,写在其前面会被当作启动器参数而失效。改完必须重启 DBeaver。堆上限按机器内存量力而行,1 GiB 默认值够日常使用;超大结果集导出可适度调大,但不建议超过物理内存的四分之一。
四、全局偏好与常见设置落点
常用设置在 GUI(Window → Preferences)中修改后,实际落盘位置如下(工作区 .metadata/.plugins/ 下的 Eclipse 偏好存储):
| GUI 设置 | 落盘位置 | 说明 |
|---|---|---|
| 连接列表/口令 | General/.dbeaver/data-sources.json + secure/secure_storage | 连接结构明文、口令加密 |
| 连接行为(自动提交/空闲断开) | data-sources.json 的 connection-types 段 | auto-commit、close-connections-period 等(实测实录见《DBeaver 26.2.3 数据库连接与操作实战》第七章) |
| 驱动(本地 jar/Maven 坐标) | drivers/ + 驱动定义(工作区 .dbeaver/database-drivers.json,有自定义时生成) | Driver Manager 的修改点 |
| SQL 编辑器(格式化/补全) | 工作区偏好存储(.metadata/.plugins/org.jkiss.dbeaver.*) | 可用 GUI 的 Export Preferences 导出成 .epf |
| 主日志 | workspace6/.metadata/.log | 排障第一现场,连接失败/驱动错误都在这 |
五、CLI 启动参数详解
5.1 帮助与版本
dbeaver --help(完整输出,实测):
DBeaver 26.2.3
Usage: dbeaver [-hqv] [-bringToFront=(boolean)] [-closeTabs=(boolean)] [--debug-logs=(boolean)] [-disconnectAll=
(boolean)] [-dump=(boolean)] [-newInstance=(boolean)] [-nosplash=(boolean)] [-reuseWorkspace=(boolean)]
[-stop=(boolean)] [-data=<data(string)>] [-nl=<nl(string)>] [--output-log=<outputLog(string)>]
[-vars=<variablesFile(string)>] [-f=<filesToOpen>[,<filesToOpen>...](string[])]...
[-con=<connectionSpecs>...(string[])]... =[<filesToOpenParams>...](string[]) [COMMAND]
DBeaver commands
=[<filesToOpenParams>...](string[])
Open files
-bringToFront=(boolean)
Bring DBeaver window on top of other applications
-closeTabs=(boolean) Close all open editors
-con, -connect, -ds-spec, --datasource-specification=<connectionSpecs>...(string[])
Connects to a specified database
-data=<data(string)> Workspace location
--debug-logs=(boolean) Enable debug logging
-disconnectAll=(boolean)
Disconnect from all databases
-dump=(boolean) Print instance thread dump
-f, -file=<filesToOpen>[,<filesToOpen>...](string[])
Open a file
-h, -help, --help=(boolean)
Show this help message and exit
-newInstance=(boolean) Force creating new application instance (do not try to activate already running)
-nl=<nl(string)> Default locale
-nosplash=(boolean) Hide splash screen on start
--output-log=<outputLog(string)>
Status/log output format
-q, -quiet=(boolean) Run quietly (do not print logs)
-reuseWorkspace=(boolean)
Force workspace reuse (do not show warnings)
-stop, -quit=(boolean) Stop DBeaver running instance
-v, -V, --version=(boolean)
Print version information and exit
-vars, -variablesFile=<variablesFile(string)>
Uses a specified configuration file for variable resolving
auth-models List available database authentication models
network-handlers List available database network handlers
completion Generate bash/zsh completion script for dbeaver
translateSQL, -translateSQL, -translate-sql-script Translate SQL script from one dialect to another
database-driver-list, -database-driver-list, -databaseList Show list of supported database drivers in json format.
link-project, -link-project, --link-project Link an existing external folder into the workspace as a
project (contents are not copied)
unlink-project, -unlink-project, --unlink-project, unlink Unlink a project from the workspace (files are kept on
disk)
版本号查询(实测):
dbeaver -v
DBeaver 26.2.3.202610181708
5.2 实例控制参数(针对运行中的实例)
DBeaver 默认单实例运行:已有实例在跑时,再执行任何 dbeaver 命令会把参数转发给该实例(而不是再开一个)。以下控制参数都依赖这一机制:
| 参数 | 说明 | 实测结论 |
|---|---|---|
-stop(别名 -quit) | 退出运行中的实例 | 实测执行后 java 进程退出(pgrep -c java → 0);若命令与实例不在同一工作区则不生效,需带相同 -data |
-disconnectAll | 断开所有数据库连接 | 实测执行后 PostgreSQL 服务端 pg_stat_activity 中 DBeaver 会话清零 |
-closeTabs | 关闭所有已打开的编辑器标签 | 实测转发给运行实例后静默完成(无控制台输出) |
-bringToFront | 把 DBeaver 窗口置顶 | 实测转发后窗口前置,无控制台输出 |
-dump | 打印实例线程转储 | 实测输出线程快照(JVM jcmd 原生格式),卡死排障利器,实测输出节选:56 SWTResourceTracker: 后跟该线程的 java.base@25.0.4.1/... 完整调用栈 |
-newInstance | 强制新开实例(不转发) | 与 -data 搭配实现多工作区并行 |
5.3 启动行为参数
| 参数 | 说明 | 实测结论 |
|---|---|---|
-nosplash | 启动不显示 splash 启动画面 | 无界面依赖场景(脚本带参启动)建议常带 |
-q(-quiet) | 静默运行,不打印日志 | 与 -nosplash 常搭配使用 |
--debug-logs | 打开调试日志 | 开启后工作区 .metadata/ 生成 dbeaver-debug-<时间戳>.log(实测目录中可见多个该类文件) |
--output-log=<format> | 启动过程日志的输出格式,取值 text 或 json | 传文件路径实测报错:Invalid --output-log value '/root/ol.txt'. Expected 'text' or 'json';text 格式即默认控制台输出形态(> Start DBeaver Application Standalone [...] 逐行插件启动日志) |
-nl=<locale> | 界面默认语言区域(如 -nl=zh) | 对新启动实例生效;转发给运行实例不改变既有界面语言 |
-reuseWorkspace | 强制复用工作区(跳过锁定警告) | 工作区异常退出后二次启动弹「workspace in use」时使用 |
-data=<path> | 指定工作区位置 | 实测 dbeaver -data /root/ws-alt 后工作区直接落在 /root/ws-alt/(.metadata、General 等结构与默认一致);备份/多工作区可用 |
5.4 连接与文件参数
-con(别名 -connect/-ds-spec/--datasource-specification)——命令行连接。 规格串内用 | 分隔键值对。常用键(官方文档口径 + 本文实测验证):
| 键 | 说明 | 实测 |
|---|---|---|
driver=<驱动短名> | 数据库类型(postgresql、mysql、sqlite 等,短名可用 auth-models/GUI 驱动列表核对) | ✅ |
host=/port=/database=/user=/password= | 基础连接五要素 | ✅(database= 正确;db= 会被静默忽略导致 FATAL: database "root" does not exist) |
url=<完整 JDBC URL> | URL 直连形态,JDBC 属性可挂在 URL 上 | ✅(MySQL 公钥问题实测靠它解决:jdbc:mysql://10.89.61.5:3306/appdb?allowPublicKeyRetrieval=true&useSSL=false) |
name=<名称> | 连接显示名 | ✅(不影响持久化) |
authProp.<键>=<值> | 认证模型参数 | JDBC 属性不能用此前缀传(实测 authProp.allowPublicKeyRetrieval=true 不生效) |
savePassword=true | 保存口令 | 配合持久连接使用;-con 临时连接实测不落盘 |
folder=<文件夹> | 归入连接树文件夹 | 官方文档口径 |
实测可用的连接命令示例(临时连接,连接树显示 Ext: PostgreSQL - appdb):
dbeaver -nosplash -con "driver=postgresql|host=10.89.61.4|port=5432|database=appdb|user=root|password=q1w2e3r4"
⚠️ 两条实测硬结论:①
-con创建的是临时连接,重启后消失、不写入data-sources.json(带name=、savePassword=true也一样,实测grep -c "PG-App" data-sources.json→ 0);②--output-log等启动参数只对新实例生效,转发给已运行实例的控制台命令无回显。完整连接实战见《DBeaver 26.2.3 数据库连接与操作实战》。
-f(-file)与位置参数——打开文件。 打开 SQL 脚本等文件进编辑器,可同时用 -con 绑定连接(实测一步完成「开编辑器 + 加载脚本 + 连库」):
dbeaver -f /root/staff-insert.sql -con "driver=postgresql|host=10.89.61.4|port=5432|database=appdb|user=root|password=q1w2e3r4"
多个文件用逗号或重复 -f;无 -f 时直接把文件路径作为位置参数写在命令尾部(filesToOpen)。
-vars——变量解析配置文件。 为带变量的连接/脚本指定变量取值文件(官方文档口径;配合项目变量使用,本文未展开实测)。
六、CLI 子命令详解
--help 尾部的 [COMMAND] 区列出了 7 个子命令。实测行为如下:
6.1 auth-models(无界面可跑)
列出可用认证模型(含每模型的参数),headless 可执行(实测):
dbeaver auth-models
实测回显(节选):
Auth Model ID: google_bigquery, Name: Google Cloud Auth, Description: BigQuery internal authentication
Parameters:
- userName = User name
- userPassword = User password
Auth Model ID: clickhouse_cloud_sso, Name: ClickHouse Cloud SSO, Description: Browser based single sign-on to ClickHouse Cloud
Parameters:
Auth Model ID: sqlserver_windows, Name: Windows Authentication, Description: Windows integrated authentication
Parameters:
- userName = User name
- userPassword = User password
用途:-con 里 auth=<模型ID> 键、GUI 连接设置的 Authentication 下拉框,取值以此列表为准。
6.2 network-handlers(无界面可跑)
列出可用网络处理器(SSL/SSH 隧道/代理等)及其参数(实测节选):
dbeaver network-handlers
Available network handlers:
Network Handler ID: clickhouse-ssl, Name: SSL, Parameters:
- ssl.method = Method, possible values: CERTIFICATES
- ssl.ca.cert.value = CA Certificate
...
Network Handler ID: ssh_tunnel, Name: SSH, Parameters:
用途:SSH 隧道、SSL、SOCKS 代理等非默认网络形态,GUI 的连接设置 SSL/SSH 标签页对应这些处理器;配置值在 data-sources.json 连接条目的 tunnel 段。
6.3 completion
生成 shell 补全脚本(picocli 4.7.7 生成器,实测产物为合法 bash 脚本,文件头节选):
dbeaver completion
#!/usr/bin/env bash
#
# dbeaver Bash Completion
# =======================
#
# Bash completion support for the `dbeaver` command,
# generated by [picocli](https://picocli.info/) version 4.7.7.
#
落地方式:dbeaver completion > /etc/bash_completion.d/dbeaver 后重新进 shell 即可补全参数。
6.4 translateSQL
把 SQL 脚本从一种方言翻译成另一种(translateSQL/-translateSQL/-translate-sql-script 三个名字等价)。实测要点:该子命令必须紧跟在子命令名之后按其参数格式书写,把文件参数放在主命令位置会报错(实测原文):
Error processing command line as client: Parameter(s) postgresql,/opt/data/quzuo/tmp/dbeaver/t-out.sql cannot be specified after 'translateSQL'
即报错信息也提示了正确形态:方言与脚本参数要写在 translateSQL 子命令自身之后,如 dbeaver translateSQL <方言参数> <脚本文件>。
6.5 database-driver-list
以 JSON 输出内置驱动清单(database-driver-list/-database-driver-list/-databaseList)。实测注意:该子命令需要图形环境——headless 执行报 org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed](见七、Q1);有显示环境的桌面会话中执行即可得到驱动 JSON 列表。若只想确认驱动能力,用 GUI 的 Database → Driver Manager 更直观。
6.6 link-project / unlink-project
把磁盘上已有目录以「外部项目」形式挂进/摘出工作区(内容不复制)。适合多机共享同一份项目目录(如放网盘/仓库的连接与脚本)。取值形态:dbeaver link-project <目录路径>。本文未做多机场景实测,使用前建议先在测试工作区(-data 另指)验证。
七、常见问题(FAQ)
Q1:headless(SSH 纯终端)执行 dbeaver auth-models 可以、执行 database-driver-list 却报 SWTError: No more handles [gtk_init_check() failed]?
auth-models/network-handlers 是纯模型列表命令,不需要 SWT;database-driver-list 的实现路径要初始化图形环境。给命令配上显示(桌面会话、ssh -X 或 Xvfb 虚拟显示)即可。这也再次说明:DBeaver 主体是 GUI 程序,CLI 只是「带参启动」。
Q2:--output-log=/root/ol.txt 报 Invalid --output-log value?
--output-log 的值是格式名(text/json),不是文件路径(实测报错原文见 5.3 节)。要留存启动日志请配合 shell 重定向:dbeaver -nosplash 2>&1 | tee startup.log。
Q3:dbeaver -stop 执行了但实例还在?
-stop 只作用于同一工作区的实例。实例若以 -data <其他路径> 启动,需用相同 -data 再执行 -stop。终极兜底:找到对应 java 进程 kill <pid>(工作区锁会随进程退出释放;异常残留可用 -reuseWorkspace 越过锁定警告)。
Q4:改了 dbeaver.ini 启动失败/参数不生效?
三个常见坑(均实测确认):① 每行一个参数,不能合并;② JVM 参数必须写在 -vmargs 之后;③ --add-opens 系列是 SWT/Eclipse 在 JDK 17+ 上的硬依赖,逐项保留,只动 -Xms/-Xmx/-D 类参数。改完用 ps -ef | grep [j]ava 复核生效值(实测方法见三、3.2)。
Q5:工作区日志在哪?连接报错先看什么?
~/.local/share/DBeaverData/workspace6/.metadata/.log 是主日志(Eclipse !ENTRY/!MESSAGE/!STACK 格式),连接失败、驱动加载错误的第一现场都在这里(本文引用的 FATAL: database "root" does not exist、Public Key Retrieval is not allowed 均实测出自该文件)。
八、参考链接
- 官方命令行文档:https://dbeaver.com/docs/dbeaver/Command-Line/
- 配置文件(工作区)文档:https://dbeaver.com/docs/dbeaver/Configuration-Files-Structure/
- JVM 参数与 ini:https://dbeaver.com/docs/dbeaver/Integration-with-Eclipse/
- 同专栏:《DBeaver 26.2.3 介绍与选型指南》《Ubuntu 22.04 安装 DBeaver 26.2.3 指南》《DBeaver 26.2.3 数据库连接与操作实战》