按需求选,不是按名气

客户端数据库支持授权特点
DBeaver CE80+ 种,含 NoSQL免费驱动自动下载、ER 图、导入导出强
TablePlus主流关系型 + Redis买断原生性能、界面现代、多标签快
DataGrip主流订阅SQL 智能提示与重构最强
HeidiSQLMySQL / 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 过滤出关心的几张表再看。
  • 事务:把自动提交关掉、开着事务确认,误删误改还能回滚;这条比任何客户端功能都重要。