DBeaver不记录连接时间、时长或成功状态,仅保存SQL执行历史;所谓“连接记录”实为用户对查询历史、已保存连接配置或数据库服务端日志的误认。

没有“连接记录”这个功能——DBeaver 不记录你什么时候连过哪个数据库、连了多久、是否成功,它只记录你在 SQL 编辑器里执行过的 SELECT、UPDATE、DELETE 等语句。
为什么搜不到“连接历史”或“连接日志”
DBeaver 的核心设计里,QueryLogViewer 和 QueryHistory 全部围绕 SQL 执行行为展开,不采集连接建立/断开事件。官方插件路径 org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/controls/querylog/ 下所有类均无连接生命周期监听逻辑。所谓“连接记录”,用户常误以为是:
- 误把“查询历史”面板中显示的
data_source_id当成连接时间线(其实只是当前连接下执行过的 SQL) - 在数据库导航树里看到的已保存连接列表(那是配置项,不是运行时日志)
- 把 MySQL 服务端的
general_log或slow_query_log当成 DBeaver 自带功能
你能查到的真实“连接上下文”信息
虽然没有连接日志,但部分上下文可通过间接方式还原:
- 打开任意一个 SQL 编辑器标签页,顶部状态栏会显示当前连接名 + 数据库名 + 用户名(如
mysql@localhost:3306 (root)) - 在“查询日志”面板(快捷键
Alt+Shift+Q)中,每条记录的data_source_id字段对应连接配置的唯一标识,可人工对照connections.xml文件(位于[workspace]/.metadata/.plugins/org.jkiss.dbeaver.core/)里的id属性反查是哪个连接 - 若启用了查询历史并设置了保留时间(默认 30 天),且该连接近期执行过 SQL,则其相关语句会出现在历史中,从而反推“这个连接最近被用过”
想看真正的连接行为?得靠数据库服务端
如果目标是审计谁、何时、从哪台机器连过库,必须依赖数据库自身的日志机制:
- MySQL:开启
general_log=ON,日志写入文件或mysql.general_log表,记录包括Connect、Quit事件 - PostgreSQL:设置
log_connections = on和log_disconnections = on,配合log_line_prefix输出客户端 IP 和时间 - 注意:这些日志默认关闭,且开启后有性能和磁盘占用风险,生产环境需谨慎评估
真正需要“连接历史”的人,往往实际要解决的是“我昨天连的测试库怎么找不到了”或“那个连不上的配置改哪了”——这类问题直接去 Database > Edit Connection 里翻连接列表,比等一个不存在的日志更可靠。











