vs code 连接数据库失败主因是插件配置错误:必须安装 sqltools 主体及对应驱动(如 postgresql 需额外装其 driver),host 填 127.0.0.1、database 不为空、password 含特殊字符需用表单模式,端口须显式填写,且执行前须手动 connect 并选中连接。

VS Code 里连不上数据库,八成不是网络或密码问题,而是插件没装对、没手动 Connect、或者配置项填错位置。SQLTools + 对应 Driver 是目前最稳的组合,其他方案在 M1/M2 Mac、Docker 环境或 Azure 场景下容易静默失败。
必须同时安装 SQLTools 主体和对应 Driver
只装 SQLTools 插件,一定会遇到 Driver not found: postgresql 或类似报错。PostgreSQL、MySQL、MSSQL 都要额外装独立 Driver 扩展:
- PostgreSQL:装
SQLTools PostgreSQL Driver(作者 mtxr,搜@tag:sqltools-driver可筛) - MySQL:装
SQLTools MySQL Driver - MSSQL:推荐用官方
mssql扩展(非 SQLTools 生态),它自带驱动且对 Azure SQL 支持更完整
SQLTools 的 Driver 不是可选依赖,是硬性前置条件;mssql 扩展则把驱动打包进主体,无需另装。
host/database/password 填错导致 90% 连接失败
这三项写错,VS Code 往往不报错,只卡在「No active connection found」或超时。常见坑点:
-
host别写localhost:macOS/Linux 下易触发 IPv6 解析失败,统一填127.0.0.1;Windows 虽可通,但跨平台项目建议也写死 -
database不能为空:PostgreSQL 不允许空库名,哪怕只想查SELECT datname FROM pg_database,也得填一个真实库名,比如postgres -
password含@、/、:等字符:URL 模式会解析崩,必须用表单模式填写,别手写postgresql://user:pass@host/db - 端口别默认忽略:Docker 映射到
5433却不填,就会报Connection refused
执行前必须手动 Connect,且右上角要选中连接
配置保存 ≠ 已连接。VS Code 不会自动连,也不会记住上次状态:
- 右键侧边栏 SQLTools 连接项 →
Connect,看到右下角状态栏出现绿色图标和连接名(如postgres@127.0.0.1)才算成功 - 新建
.sql文件后,右上角数据库下拉框必须手动选中已连上的那个连接,否则Ctrl+Alt+R(Win/Linux)或Cmd+Alt+R(macOS)执行无效 - 光标必须落在完整语句内:不能跨行选中,不能停在注释或空行,否则只执行光标所在行
导出 CSV 前记得关 resultsLimit 并确认字段类型
点「导出为 CSV」看似方便,但两个设置不调就容易丢数据:
- 先在
settings.json里设"sqltools.resultsLimit": 0,否则只导出前 100 行(默认值) -
timestamp with time zone字段会被转成本地时区字符串,原始时区信息丢失 -
jsonb字段可能因换行符导致 CSV 列错位,或被截断;导出前建议先SELECT jsonb_pretty(col)看结构
真正麻烦的从来不是连上数据库,而是你以为连上了、以为执行了、以为导出了——结果全是错的。每一步都得亲手确认状态图标、连接名、下拉选中项,少一个环节就白忙活。











