SQL面板未生效需检查\_DefaultTabDatabase配置是否写入正确文件:必须在客户端本地实例配置文件中设为小写sql,且连接级设置“Open connection in metadata viewer”未勾选。
SQL面板没生效?检查 _DefaultTabDatabase 配置位置
这个配置不是写在代码里或运行时设置的,而是存在客户端本地配置文件中。dbeaver 默认不会读取你改过的任何 java 属性或启动参数——它只认 dbeaver.ini 或用户配置目录下的 .dbeaver4/(旧版)或 .dbeaver-data-sources.json(新版)里的硬编码项。
实操建议:
- 关闭 DBeaver,打开配置文件:
~/.dbeaver4/instances/<em>your-instance-id</em>/dbeaver.conf(Linux/macOS)或%APPDATA%\DBeaverData\instances\<em>your-instance-id</em>\dbeaver.conf(Windows) - 确认该文件中是否存在
_DefaultTabDatabase=sql这一行;若不存在,手动添加(注意等号前后无空格) - 如果用的是便携版,配置可能在
dbeaver-portable\configuration\.settings\org.jkiss.dbeaver.core.prefs里,查找并修改ui.default.tab.database=sql
为什么改了 _DefaultTabDatabase 还是打开连接后跳到“Metadata”?
因为 DBeaver 的选项卡默认行为分两级:全局默认 + 连接级覆盖。即使全局设了 _DefaultTabDatabase=sql,只要某个连接在编辑时勾选了「打开连接时显示元数据」,它就会无视全局配置。
实操建议:
- 右键目标数据库连接 → 编辑连接 → 切换到 UI 标签页
- 取消勾选
Open connection in metadata viewer - 勾选
Open SQL editor on connect(这才是真正触发 SQL 面板的开关) - 保存后重启连接(不是重启软件,是断开再连一次)
_DefaultTabDatabase 只支持 sql 和 metadata 吗?
是的,目前(v23.3.x 起)只识别这两个值。填 sql_editor、query、SQL(大小写敏感)或任何其他字符串都会被忽略,默认回退到 metadata。
实操建议:
- 值必须小写且严格为
sql或metadata - 配置项名是
_DefaultTabDatabase,不是defaultTab、default_tab或带下划线前缀的其他变体 - 如果同时设置了
_DefaultTabDatabase=sql和连接级的Open connection in metadata viewer=true,后者优先级更高
改完配置不生效?先排除缓存和多实例干扰
DBeaver 会缓存 UI 状态,尤其是多个工作区(workspace)或并行运行多个实例时,改的可能是 A 实例的配置,但你启动的是 B 实例。
实操建议:
- 启动 DBeaver 时加参数验证当前加载的配置路径:
dbeaver -consoleLog -debug,看日志里打印的Configuration location: - 删除
.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi(这是 UI 布局缓存),强制重载默认 tab 行为 - 确保没有通过快捷方式或脚本指定了
-configuration参数,覆盖了你修改的路径
dbeaver.ini,但 DBeaver 实际读的是用户目录下的 instance 配置——这点最容易漏看。










