DBeaver核心错误日志默认位于%USERPROFILE%\.dbeaver4\.metadata\.log(Windows),需完全退出后用命令行查看;连接失败时优先搜索Connection refused、Socket timeout等关键词定位问题。

直接看 .metadata/.log 文件,不是点菜单里“日志”面板——那只是运行时输出,真出问题得翻这个。
日志文件在哪?路径和权限最容易卡住
DBeaver 的核心错误日志默认存在用户目录下的隐藏工作区文件夹里,不是安装目录,也不是你新建连接时选的任何路径:
- Windows:
%USERPROFILE%\.dbeaver4\.metadata\.log(注意是.dbeaver4,不是.dbeaver) - macOS:
~/Library/DBeaverData/.metadata/.log - Linux:
~/.dbeaver4/.metadata/.log
如果找不到,先确认 DBeaver 是否已完全退出(托盘图标也要右键退出),再检查该路径是否存在;若目录为空或根本没有 .metadata 子文件夹,说明工作区损坏,删掉整个 .dbeaver4 重来更省事。别试图用资源管理器直接打开隐藏文件夹——用终端 ls -la 或命令行 dir /a 看。
连接失败时怎么快速定位关键词?
日志是纯文本,但堆了大量启动信息,真正有用的错误集中在连接瞬间。用 grep 或文本编辑器搜索以下关键词:
-
Connection refused:目标主机没开服务,或防火墙拦了端口 -
Socket timeout:网络不通、代理没配对、或数据库监听地址绑错了(比如只绑127.0.0.1却从远程连) -
Public Key Retrieval is not allowed:MySQL 8.0+ 常见,进连接配置的驱动属性,把allowPublicKeyRetrieval设为true -
SSLHandshakeException:SSL 配置冲突,比如服务器没开 SSL 却勾了“使用 SSL”,或证书不被信任
别一上来就翻几百行日志——先搜这些词,90% 的连接失败靠它们就能定性。
怎么让日志记录更全、中文不乱码?
默认日志只记 ERROR/WARN,且不处理中文字符。要让它真正有用,得手动调两处:
- 在 DBeaver 中打开
窗口 → 首选项 → 用户界面 → 日志,勾选所有日志级别(特别是DEBUG),并把日志路径改到非系统盘(比如D:\dbeaver-logs\),避免权限问题 - 如果连接名或库名含中文,日志里会显示
???—— 这是 JVM 启动参数缺编码声明。需编辑dbeaver.ini,在-vmargs下一行加:-Dfile.encoding=UTF-8 - 强烈建议同步设置时区:在
首选项 → 数据库 → 连接设置 → 默认时区里选Asia/Shanghai,否则时间字段、日志时间戳全错位
改完必须重启 DBeaver,.log 文件才生效。导出日志不用截图——直接复制粘贴该文件内容,发给同事或提工单最准。
日志不是万能的,但它永远比“点测试连接→弹窗说失败→重试”快十倍。真正容易被忽略的是:驱动下载失败、代理配置未同步、JDBC URL 里漏了 ?useSSL=false 这类细节,它们不会单独报错,只会沉默地卡在连接建立前——这时候,.log 里最后几行空行之间的异常堆栈,就是唯一线索。











