DBeaver:跨平台数据库管理工具¶
为什么要学 DBeaver¶
无论你是后端开发、数据分析还是 DBA,日常都需要连接数据库执行查询、查看表结构、导入导出数据。命令行工具(psql、mysql)高效但不直观,各数据库自带的 GUI(pgAdmin、phpMyAdmin)只能管一种数据库。
DBeaver 是一个通用数据库管理工具,支持所有主流关系型数据库和 NoSQL 数据库。社区版免费开源,功能覆盖日常 90% 以上的数据库操作需求。
核心优势: - 支持 80+ 数据库类型(PostgreSQL、MySQL、SQLite、MongoDB、Redis、ClickHouse...) - 可视化 ER 图 - SQL 编辑器(智能补全、格式化、执行计划) - 数据导入/导出(CSV、JSON、SQL、Excel) - SSH 隧道连接 - 跨平台(Windows、macOS、Linux) - 社区版完全免费
核心概念¶
白话解释¶
| 概念 | 白话说明 |
|---|---|
| Connection | 到一个数据库实例的连接配置 |
| Database Navigator | 左侧面板,树形展示所有连接/库/表 |
| SQL Editor | 写和执行 SQL 的编辑器 |
| ER Diagram | 表关系的可视化图 |
| Data Editor | 表格形式浏览和编辑数据 |
| Driver | 连接特定数据库所需的 JDBC 驱动 |
| Project | 组织连接和脚本的工作空间 |
| Data Transfer | 数据导入/导出向导 |
DBeaver 版本对比¶
| 功能 | Community(免费) | Pro(付费) |
|---|---|---|
| 关系型数据库 | 全部支持 | 全部支持 |
| NoSQL (MongoDB等) | 支持 | 增强支持 |
| SSH隧道 | 支持 | 支持 |
| ER图 | 支持 | 增强版 |
| 数据导入导出 | 支持 | 更多格式 |
| 版本管理 | 不支持 | Git集成 |
| 团队协作 | 不支持 | 支持 |
| 技术支持 | 社区 | 官方 |
对个人和大多数团队来说,Community 版已经够用。
安装配置¶
Windows¶
# 方式1:直接下载安装包
# https://dbeaver.io/download/
# 方式2:使用 winget
winget install dbeaver.dbeaver
# 方式3:使用 scoop
scoop install dbeaver
macOS¶
Linux¶
# Ubuntu/Debian
sudo snap install dbeaver-ce
# 或者 Flatpak
flatpak install flathub io.dbeaver.DBeaverCommunity
# 或者下载 .deb
wget https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb
sudo dpkg -i dbeaver-ce_latest_amd64.deb
首次启动配置¶
- 启动后选择工作空间目录
- 可选择安装推荐的驱动
- 设置主题(深色/浅色)
- 配置默认字体大小
快速上手¶
创建数据库连接¶
- 点击"新建连接"按钮(工具栏左上方的插头图标)
- 选择数据库类型(如 PostgreSQL)
- 填写连接信息:
- Host: localhost
- Port: 5432
- Database: mydb
- Username: postgres
- Password: ***
- 点击"Test Connection"验证
- 确认保存
SSH 隧道连接远程数据库¶
在连接设置中: 1. 切换到 SSH 标签页 2. 勾选 "Use SSH Tunnel" 3. 填写跳板机信息: - Host: bastion.example.com - Port: 22 - Username: deploy - Authentication: Private Key - Private Key: 选择 .pem 文件 4. 数据库 Host 填写内网地址(如 10.0.1.5)
执行 SQL 查询¶
- 双击连接打开
- 右键数据库 → "SQL Editor" → "Open SQL Script"
- 编写 SQL:
SELECT
u.name,
COUNT(o.id) as order_count,
SUM(o.amount) as total_spent
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at > '2024-01-01'
GROUP BY u.name
ORDER BY total_spent DESC
LIMIT 20;
Ctrl+Enter执行当前语句 /Ctrl+Shift+Enter执行全部
浏览和编辑数据¶
- 在左侧导航器中展开表
- 双击表名打开 Data Editor
- 直接在单元格中编辑数据
- 底部状态栏点击 "Save" 提交修改
- 支持过滤、排序、添加行、删除行
进阶用法¶
1. SQL 编辑器高级功能¶
智能补全: - 输入表名前几个字母后按 Ctrl+Space 触发补全 - 自动补全列名、函数名、关键字
格式化 SQL: - 选中 SQL → 右键 → Format → Format SQL - 或快捷键 Ctrl+Shift+F
查看执行计划: - 写好 SQL 后按 Ctrl+Shift+E(Explain) - 可视化展示查询计划和成本
多语句执行:
-- 用分号分隔多条语句
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
2. ER 图(实体关系图)¶
- 右键数据库或 Schema → "View Diagram"
- DBeaver 自动根据外键关系生成 ER 图
- 可以拖拽调整布局
- 导出为 PNG/SVG 用于文档
手动添加特定表到图中: - 从导航器拖拽表到 ER 图画布
3. 数据导入导出¶
导出为 CSV: 1. 右键表 → "Export Data" 2. 选择 "CSV" 格式 3. 配置分隔符、编码、文件路径 4. 点击"Proceed"
从 CSV 导入: 1. 右键目标表 → "Import Data" 2. 选择 CSV 文件 3. 映射列对应关系 4. 预览数据确认无误 5. 执行导入
支持的格式: - CSV / TSV - JSON - XML - SQL INSERT 语句 - Excel (xlsx) - HTML - Markdown
4. 比较数据库结构¶
- 工具栏 → "Database" → "Compare/Migrate"
- 选择源数据库和目标数据库
- DBeaver 显示结构差异(新增表、修改列、删除索引等)
- 可以生成迁移 SQL
5. 模拟数据生成¶
- 右键表 → "Generate Mock Data"
- 为每列选择数据生成策略:
- name → 姓名生成器
- email → 邮箱生成器
- created_at → 日期范围
- amount → 数值范围
- 设置行数
- 执行生成
6. 书签和 SQL 模板¶
保存常用查询为书签: 1. SQL Editor 中写好查询 2. 右键 → "Save as Template" 3. 下次在 Templates 面板中双击即可插入
SQL 片段:
-- 保存为 "查询表大小" 模板
SELECT
relname as table_name,
pg_size_pretty(pg_total_relation_size(relid)) as total_size
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC;
7. 多数据库联合查询(Pro 功能替代方案)¶
虽然 Community 版不支持跨数据库查询,但可以: 1. 将数据导出为 CSV 2. 创建本地 DuckDB/SQLite 连接 3. 导入多个数据源的数据 4. 在本地执行联合查询
8. 自定义快捷键¶
常用快捷键:
| 操作 | Windows/Linux | macOS |
|---|---|---|
| 执行语句 | Ctrl+Enter | Cmd+Enter |
| 执行脚本 | Ctrl+Shift+Enter | Cmd+Shift+Enter |
| 格式化SQL | Ctrl+Shift+F | Cmd+Shift+F |
| 打开SQL编辑器 | Ctrl+] | Cmd+] |
| 补全 | Ctrl+Space | Ctrl+Space |
| 查看执行计划 | Ctrl+Shift+E | Cmd+Shift+E |
| 注释/取消注释 | Ctrl+/ | Cmd+/ |
在 Window → Preferences → General → Keys 中自定义。
9. 连接 MongoDB / Redis¶
DBeaver Community 也支持 NoSQL:
MongoDB: 1. 新建连接 → 选择 MongoDB 2. 填写连接字符串或分开填写 host/port 3. 可以浏览 Collection、执行查询
Redis: 1. 新建连接 → 选择 Redis 2. 填写 host:port 3. 可以浏览 key、查看值、执行命令
常见问题¶
Q1: 连接报错 "驱动未找到"¶
第一次连接某种数据库时,DBeaver 会自动下载驱动。如果下载失败: - 检查网络/代理设置 - 手动下载驱动 JAR 放到 drivers/ 目录 - Database → Driver Manager → 选中驱动 → Edit → 手动添加 JAR
Q2: 中文乱码¶
- 连接属性中设置
characterEncoding=utf8 - Window → Preferences → General → Workspace → Text file encoding → UTF-8
- SQL Editor 字体选择支持中文的字体
Q3: 如何同时打开多个查询结果¶
- SQL Editor 中
Ctrl+Enter每次执行会在底部新 Tab 打开结果 - 可以拆分编辑器:右键 Tab → "Split Vertically"
Q4: 大表浏览卡顿¶
DBeaver 默认分页加载(200行一页),不会一次加载全部数据。如果仍然慢: - 增大 DBeaver 内存:编辑 dbeaver.ini,增加 -Xmx2048m - 使用过滤条件缩小数据范围 - 对大表避免使用 "Count rows" 功能
Q5: 如何备份连接配置¶
连接信息保存在工作空间目录中: - 导出:File → Export → DBeaver → Project - 导入:File → Import → DBeaver → Project - 或直接备份 ~/.local/share/DBeaverData/ (Linux)
Q6: DBeaver vs DataGrip¶
| 维度 | DBeaver CE | DataGrip |
|---|---|---|
| 价格 | 免费 | $99/年 |
| 数据库支持 | 80+ | 30+ |
| IDE集成 | 独立 | JetBrains生态 |
| 智能补全 | 好 | 更好 |
| 重构支持 | 有限 | 强 |
| 内存占用 | 中 | 较高 |
对于日常使用,DBeaver CE 完全够用。如果你重度使用 JetBrains 全家桶且需要更智能的 SQL 重构,DataGrip 值得考虑。
参考资源¶
| 资源 | 链接 |
|---|---|
| 官方网站 | https://dbeaver.io |
| GitHub 仓库 | https://github.com/dbeaver/dbeaver |
| 文档 | https://dbeaver.com/docs/dbeaver |
| 下载 | https://dbeaver.io/download |
| Wiki | https://github.com/dbeaver/dbeaver/wiki |
| 快捷键参考 | https://dbeaver.com/docs/dbeaver/Shortcuts |
小结: DBeaver 是数据库管理领域的"瑞士军刀"。它不需要你为每种数据库安装不同的 GUI 工具,一个 DBeaver 足以覆盖所有日常操作。免费、开源、跨平台——如果你还在用命令行或 phpMyAdmin 管理数据库,DBeaver 会显著提升你的效率。