连不上数据库主因是参数配置与驱动行为不匹配:postgresql需显式填用户名密码且ssl必须设为require,mysql 8.0+需兼容caching_sha2_password;docker内访问宿主机应使用host.docker.internal或真实ip;sqltools依赖独立驱动且配置在json文件中;prisma插件支持schema变更→迁移→应用闭环;rayforcedb插件专用于其grpc接口与集群拓扑管理。

Database Client 连接 PostgreSQL/MySQL 时连不上怎么办
多数连接失败不是网络问题,而是参数配置与驱动行为不匹配。PostgreSQL 的 peer 认证在本地 CLI 可用,但 Database Client 插件强制要求显式提供 username 和 password,留空会静默失败;MySQL 8.0+ 默认使用 caching_sha2_password 插件,而部分插件版本尚未支持,会导致“Access denied”且无明确提示。
- 检查
host:Docker 容器内访问宿主机服务,别填localhost,改用host.docker.internal(macOS/Windows)或宿主机真实 IP(Linux) - 验证
database字段:拼错或数据库未创建时,报错是database "xxx" does not exist,但插件不会主动提示“请先CREATE DATABASE” - SSL 必须显式开启:PostgreSQL 服务端设为
ssl = require时,客户端必须勾选 SSL 并设sslmode=require,否则连接成功后立刻断开
SQLTools + 驱动组合的配置要点
SQLTools 本身不带数据库协议实现,依赖单独安装的驱动扩展(如 SQLTools PostgreSQL),驱动缺失会导致连接按钮灰掉或点击无响应。它比 Database Client 更灵活,但配置路径稍深——连接信息存在 .vscode/settings.json 或全局 ~/.sqltools/config.json 中,而非纯图形界面。
- 驱动必须与
SQLTools主体版本兼容:2026 年主流驱动已适配 Node.js 20+,但旧版插件可能仍依赖 Node.js 16,导致 TLS 握手失败 - 连接名(
name)不能含空格或特殊字符,否则在命令面板中执行SQLTools: Run Current Query时会解析失败 - 多个环境(dev/staging/prod)建议用不同
name区分,避免误操作;切换靠右键连接项,而非修改当前配置
Prisma 插件对 TypeSctipt 项目的迁移闭环支持
如果你用 Prisma 管理数据库 schema,Prisma Extension for VSCode 不只是“连库看表”,它把 prisma migrate 流程深度嵌入编辑器上下文:模型变更 → 自动生成迁移文件 → 校验 SQL → 一键应用,整个过程不离开 VSCode。
- 修改
prisma/schema.prisma后,右键菜单出现Prisma: Create Migration,生成的文件名含时间戳(如20260722143022-init),确保顺序可追溯 - 执行
Prisma: Apply Migration前,插件会自动调用prisma migrate diff检查目标 DB 是否已存在该迁移,避免重复执行 - 回滚需手动触发
prisma migrate resolve或prisma migrate reset,插件仅提供快捷入口,不自动确认,防止误删数据
RayforceDB/rayforce-vscode 插件的独特定位
这不是通用型 SQL 客户端,而是专为 RayforceDB 设计的集成层,重点解决其分布式特性带来的管理复杂度:比如跨节点查询路由、副本状态可视化、WAL 日志位置追踪。它不支持标准 SQL 客户端能连的任意数据库,只认 RayforceDB 的 gRPC 接口和元数据格式。
- 连接配置里没有传统
host/port,而是填clusterId和endpoint(如grpc://rayforce-cluster-01:9000) - 侧边栏展示的是“节点拓扑图”而非数据库列表,点击节点可直接查看该节点的
raft_state、commit_index等内部指标 - 执行 SQL 时自动注入
/* +node=leader */这类 hint,控制查询路由策略,普通客户端无法识别这类注释
真正难的不是连上,是连上之后能做什么——通用插件给你一个 SQL 编辑器,专用插件给你一个数据库的运行视图。选哪个,取决于你是在调试一条查询,还是在诊断一个集群。











