VS Code连接数据库必须安装对应扩展,如mssql仅支持SQL Server,SQLTools需搭配指定驱动,vscode-sqlite仅支持本地.db文件;多机房连接需通过SSH隧道映射端口实现。

SQLRunner 插件在 VS Code 市场中并不存在官方维护、广泛认可的数据库连接工具,它不支持多机房连接,也不具备稳定可用的数据库管理能力。你看到的“SQLRunner”很可能是名称混淆、已下架插件,或与 SQLTools、mssql、vscode-sqlite 等真实插件搞混了。
真实可用的方案只有几个,且必须按数据库类型严格区分:
VS Code 连数据库必须装对扩展,不能靠名字猜
VS Code 本身没有内置 SQL 执行能力,所有连接都依赖第三方扩展,而每个扩展只适配一种协议:
-
mssql(Microsoft 官方):仅支持 SQL Server,需额外下载sqltoolsserviceCLI,否则执行查询会报Command 'MSSQL: New Query' resulted in an error -
SQLTools+ 驱动(如SQLTools PostgreSQL Driver):支持 PostgreSQL/MySQL/SQLite,但 MySQL 驱动不支持参数化查询(WHERE id = ?会报错,得写成WHERE id = 123) -
vscode-sqlite:仅支持本地.db文件,无需服务端,也不走网络 - 没有一个插件能“自动识别多机房”,所谓“多机房连接”实际是手动配置多个 connection 条目,然后手动切换
connection.json 里写错一个字段,连接就卡死在 Connecting…
配置文件路径为 .vscode/connections.json(或通过命令面板 SQLTools: New Connection 生成),常见致命错误:
- PostgreSQL 漏写
"ssl": "disable"或设成"require"却没配证书 → 报Connection refused或无限转圈 - MySQL 使用默认端口
3306,但服务器实际监听3307→ 无提示超时,只显示Connecting… - SQL Server 的
"server"字段填了完整连接串(如tcp:xxx.database.windows.net,1433)→ 应只填主机名xxx.database.windows.net,端口单独用"port" - 密码含特殊字符(如
@、/)未 URL 编码 → 登录失败且错误信息里不体现密码问题
执行查询时报 No active connection found,不是没连上,是没选中
VS Code 不会自动把当前 SQL 文件绑定到某个连接。即使你配置了 5 个数据库,打开一个 .sql 文件后:
- 右下角状态栏必须显示具体连接名(如
postgres://user@localhost:5432/mydb),才表示已激活 - 若显示
No connection或空白,按Ctrl+Shift+P→ 输入SQLTools: Connect→ 手动选一个条目 - 切换连接后,之前打开的查询结果标签页不会自动刷新,需重新执行
Ctrl+Enter - 多个窗口同时打开时,每个窗口独立维护自己的 active connection,互不影响
多机房场景下,别硬塞进一个插件,用 SSH 隧道更可靠
真正跨机房(比如北京 IDC + 广州 IDC + 新加坡)访问数据库,靠插件原生连接容易因网络策略失败。推荐组合方案:
- 本地装
Remote - SSH插件,连到跳板机(如北京 IDC 的堡垒机) - 在跳板机上用
ssh -L 5433:pg-prod-gz:5432 user@guangzhou-db建隧道,把广州库映射到本地127.0.0.1:5433 - VS Code 里用
SQLTools连127.0.0.1:5433,就像连本地库一样 - 不同机房开不同本地端口(
5433、5434、5435),再配多个 connection 条目,就能在同一个 VS Code 里切着用
真正的难点不在插件名有多酷,而在 SSL 模式、端口映射、密码编码、连接激活这四个地方——错一个,就卡住,且错误提示几乎不告诉你哪错了。


















