VSCode 自带不支持数据库连接,必须安装扩展;Database Client 是兼容性最广、配置最直观的选择,支持 PostgreSQL/MySQL/SQLite 等多种数据库,且需注意认证、SSL、autocommit 等关键配置。

VSCode 自带不支持数据库连接,必须装扩展
VSCode 本身没有内置数据库客户端能力,所有“连接数据库”功能都依赖第三方扩展。官方市场里最常用、维护活跃的是 SQL Server Extensions(微软官方)、MySQL Support(by cweijan)、Database Client(by Cweijan,支持 MySQL/PostgreSQL/SQLite/Oracle/SQL Server)和 vscode-sqlite(轻量 SQLite 专用)。别被名字误导——SQL Server Extensions 只支持 SQL Server,MySQL Support 不支持连接池或 SSL 配置,而 Database Client 是目前兼容性最广、配置最直观的选择。
用 Database Client 扩展连接 PostgreSQL / MySQL / SQLite
安装 Database Client 后,侧边栏会出现数据库图标。点击后选择「+ Add Connection」,再选数据库类型。关键点在于连接参数填写方式与实际驱动行为一致:
-
host和port:PostgreSQL 默认localhost:5432,MySQL 默认localhost:3306;Docker 环境需填容器 IP 或host.docker.internal -
username和password:不能留空(即使本地 PostgreSQL 允许peer认证),必须显式提供;MySQL 8.0+ 默认用caching_sha2_password插件,VSCode 扩展可能不兼容,建议临时切回mysql_native_password -
database:必填字段,填错会报database "xxx" does not exist,但不会提示你是否拼写错误或未创建 - SSL 模式:PostgreSQL 若服务端强制
require,客户端必须勾选SSL并指定sslmode=require,否则连上即断
{
"name": "local-pg",
"dialect": "PostgreSQL",
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": "123456",
"database": "myapp_dev",
"ssl": true
}
执行 SQL 时注意工作区上下文与自动提交
在 VSCode 中打开一个 .sql 文件并右键「Execute Query」,实际执行范围取决于光标位置和选中内容。没选中时默认执行整个文件;选中部分则只执行该段。但更隐蔽的问题是事务控制:
- MySQL 连接默认开启
autocommit=true,DDL(如CREATE TABLE)和 DML(如INSERT)都会立即生效 - PostgreSQL 默认
autocommit=false,单条UPDATE不会自动提交,必须手动执行COMMIT或启用扩展的「Auto-commit mode」开关(在连接右键菜单里) - 执行出错后,PostgreSQL 会进入
in failed transaction状态,后续语句全报current transaction is aborted,必须先ROLLBACK
无法连接时优先查日志和连接字符串格式
扩展不报详细错误,只显示「Connection failed」或「Authentication failed」。真实原因藏在输出面板的 Database Client 日志里(Ctrl+Shift+U → 选 Database Client)。常见硬伤包括:
- 密码含特殊字符(如
@、/、:)未 URL 编码,导致解析连接字符串失败 - PostgreSQL 的
pg_hba.conf没允许md5或scram-sha-256认证方式,而扩展只支持这两种 - MySQL 连接字符串漏了
?charset=utf8mb4,中文插入变???,但无任何报错提示 - Windows 上用 WSL2 连宿主机 MySQL,
host填localhost会走 IPv6 回环,实际应填127.0.0.1
复杂点永远在认证链和网络路径上,而不是 SQL 语法本身。










