优先选 sqltools(作者 mtxr)+ sqltools postgresql driver,因其稳定、更新勤、支持导出 csv/tsv/json、可设 resultslimit=0、有明确连接状态指示,而 postgresql by chris kolkman 不支持全量导出和 ssl 强制场景。

VSCode 本身不支持直接连接 PostgreSQL,必须靠扩展补全能力;装错插件或配错参数,连“Connecting…”都卡住,更别说执行 SELECT 或点开表结构了。
该装哪个扩展:SQLTools 还是 PostgreSQL by Chris Kolkman?
优先选 SQLTools(作者 mtxr)+ SQLTools PostgreSQL Driver。它稳定、更新勤、支持导出 CSV/TSV/JSON、能改 resultsLimit、有明确的连接状态指示。别只搜“PostgreSQL”装第一个——PostgreSQL by Chris Kolkman 虽轻量,但不支持导出全部结果(没 resultsLimit=0 选项),也不处理 SSL 强制场景(比如 Supabase 或 RDS)。
常见错误现象:Protocol error: unrecognized message type,基本是驱动没装或版本不匹配。
- 确认已安装两个扩展:核心
SQLTools+ 驱动SQLTools PostgreSQL Driver - 卸载所有其他 PostgreSQL 相关插件,避免冲突
- 重启 VSCode,确保右下角状态栏出现数据库图标
连接失败的三大高频原因和对应检查项
报 Connection refused 或 FATAL: password authentication failed,不是密码错了,而是下面三处之一没对:
-
pg_isready没返回accepting connections→ PostgreSQL 服务根本没运行(Docker 容器停了、brew services stop postgresql后没重开) - host 填了
localhost→ macOS/Linux 上应统一用127.0.0.1;Windows 可用localhost,但混用易出问题 -
pg_hba.conf没放行:本地连接需至少有一行类似host all all 127.0.0.1/32 md5,改完要pg_ctl reload或重启服务
在编辑器里查表、写 SQL、看结果的完整链路
连接成功后,侧边栏点开 SQLTools 图标,展开数据库 → 表 → 右键 SELECT * FROM ... 生成语句,或手动写 SELECT 到 .sql 文件里。关键动作顺序不能错:
- 先确保右下角状态栏显示当前连接名(绿色图标),否则执行会报
No active connection found - 写好语句后,**必须选中整段 SQL**(或光标在语句内),再按快捷键
Ctrl+Alt+R(Windows/Linux)或Cmd+Alt+R(macOS) - 结果表格出来后,**光标要点进任意单元格**,右上角导出按钮(向下箭头+表格图标)才可点击;点「磁盘」图标只会保存 .sql 文件
- 想导全部数据?进 VSCode 设置搜
sqltools.resultsLimit,设为0;默认只拉前 100 行
导出 CSV 时字段含逗号或换行符怎么办
SELECT 结果里如果某字段含 , 或 \n,用默认 CSV 导出会破坏结构——Excel 打开后错列、少行。这不是 bug,是 CSV 格式限制。
临时解法:导出时在弹窗里选 tsv(制表符分隔),tab 几乎不会出现在业务数据里,兼容性远好于 CSV。
路径由 sqltools.exportPath 控制,默认存系统下载目录;想固定位置,填绝对路径如 /Users/you/export,注意末尾不加斜杠。
真正麻烦的是权限和字符集:如果导出中文乱码,检查 VSCode 文件编码是否为 UTF-8,并确认 PostgreSQL 的 client_encoding 是 utf8(连上后执行 SHOW client_encoding;)。这两处不一致,导出的 CSV 用 Excel 打开必乱码,且无法通过另存为修复。











