按需求选,不是按名气
| 客户端 | 数据库支持 | 授权 | 特点 |
|---|---|---|---|
| DBeaver CE | 80+ 种,含 NoSQL | 免费 | 驱动自动下载、ER 图、导入导出强 |
| TablePlus | 主流关系型 + Redis | 买断 | 原生性能、界面现代、多标签快 |
| DataGrip | 主流 | 订阅 | SQL 智能提示与重构最强 |
| HeidiSQL | MySQL / PG / MSSQL | 免费 | Windows 轻量,启动秒开 |
| Beekeeper Studio | 主流 | 免费 + 付费版 | 跨平台、界面干净 |
结论:要连冷门数据库或做跨库数据迁移,DBeaver 几乎是唯一现实选择;天天写 SQL、追求响应手感,TablePlus 值那个价;已经在 JetBrains 全家桶里就直接用 DataGrip,省一套快捷键记忆;只管一个 MySQL 且机器配置老,HeidiSQL 足够。Navicat 稳但贵,授权方式也偏传统。
连接配置里最容易卡住的两处
MySQL 8 默认 caching_sha2_password 认证,DBeaver 用老驱动会报 "Public Key Retrieval is not allowed"。在连接的驱动属性里加 allowPublicKeyRetrieval=true、useSSL=false,并把时区写死,否则 timestamp 字段会差八小时:
jdbc:mysql://127.0.0.1:3306/app?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8
连生产库一律走 SSH 隧道:DBeaver 连接的 SSH 标签里填跳板机地址、认证方式选密钥,本地端口给个 13306 之类不冲突的值,别把 3306 暴露在公网。TablePlus 在 Advanced 里同样有 SSH 选项,命令行等价写法如下。另外单独保存一份只读连接,勾上 read-only,是防止查数据时手滑执行 UPDATE 的最后一道闸。
ssh -L 13306:127.0.0.1:3306 deploy@jump.example.com -N
mysql -h 127.0.0.1 -P 13306 -u reader -p app
DBeaver 效率与踩坑
快捷键先记四个:Ctrl+Enter 执行当前语句、Alt+X 执行整段脚本、Ctrl+Shift+F 格式化 SQL、Ctrl+/ 注释行;结果网格里 Ctrl+Shift+C 连表头一起复制,贴进文档很方便。数据导出选 CSV 而不是"生成 INSERT 语句",十万行以上用后者会内存溢出且慢得离谱。
- 驱动下载失败:公司网络拉不到 Maven 中央库时,在首选项 → 驱动 → Maven 里改成国内镜像,或手动指定本地 jar。
- SQLite:直接选本地 .db 文件,别放网络路径,并发写会锁库;顺手把同步模式改成 NORMAL 提升导入速度。
- ER 图:对几十张表以上的库渲染极慢,先按 schema 过滤出关心的几张表再看。
- 事务:把自动提交关掉、开着事务确认,误删误改还能回滚;这条比任何客户端功能都重要。