优先选SQLTools+对应驱动或Database Client(cweijan版):前者模块清晰、多库共存友好,后者开箱即用、配置直白;单体插件停更、不跨库、难维护。

直接说结论:别装“MySQL”或“PostgreSQL”单体插件,优先选 SQLTools + 对应驱动,或 Database Client(cweijan 版)——前者模块清晰、多库共存友好;后者开箱即用、配置项更直白。
为什么 SQLTools 比单体插件更可靠
搜索 “MySQL” 时看到的 mysql(全小写)插件早已停更,而 MySQL(首字母大写,作者 cweijan)虽可用,但只专注 MySQL,不支持跨库切换。SQLTools 是统一入口,靠独立驱动扩展能力:SQLTools MySQL Driver、SQLTools PostgreSQL Driver 可共存,连接配置也统一存于 ~/.sqltools/connections.json,方便同步和脚本化管理。
常见踩坑点:
- 安装 SQLTools 后必须**单独安装对应驱动**,否则新建连接时选不到数据库类型
- 驱动版本需与 SQLTools 主插件兼容——2026 年主流稳定组合是 SQLTools v0.35+ 配 v0.12+ 驱动
- Windows 用户若连 SQL Server,
mssql-tools仍需系统级安装,SQLTools 不自动代劳
Database Client 连接 PostgreSQL 时 SSL mode 必须显式关掉
PostgreSQL 默认启用 sslmode=require,但本地开发环境通常没配证书。连接时若不处理,会卡在“已连接→立即断开”,错误日志里看不到明确提示,只显示 Connection closed。
解决方法是在连接配置 JSON 中加 "ssl": false 或 "sslmode": "disable":
{
"name": "local-pg",
"dialect": "PostgreSQL",
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": "123456",
"database": "myapp_dev",
"ssl": false
}
注意:ssl: false 是 Database Client 的写法;SQLTools 则要求字段名是 sslmode,值为 "disable" —— 字段名不通用,不能照搬配置。
MySQL 8.0+ 连接失败大概率是 authPlugin 不匹配
MySQL 8.0 默认认证插件是 caching_sha2_password,但多数 VSCode 扩展(包括 Database Client 和旧版 SQLTools 驱动)只认 mysql_native_password。现象是输入密码后无响应,或报错 Client does not support authentication protocol。
安装、修复、更新或打包一个基于 Python 和 PyMySQL 实现的 Windows `mysql` 命令。适用于用户希望在 PowerShell/CMD 中输入 `mysql` 时重定向到 Python 实现、需要交互式输入 MySQL 连接信息、需要同步到当前用户本地 bin 目录,或需要将该能力封装成可公开复用的 Codex skill。
临时解法(开发机适用):
- 登录 MySQL 命令行,执行:
ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; - 或在连接配置中强制指定插件(Database Client 支持):
"authPlugin": "mysql_native_password" - SQLTools 驱动暂不支持运行时覆盖 authPlugin,只能换驱动或降级用户认证方式
生产环境不要改认证插件,应升级驱动或改用支持新协议的客户端。
密码含 @ / : / / 等字符时必须 URL 编码
所有基于 URL 连接串解析的插件(包括 Database Client 和 SQLTools 的部分驱动)都会把 @ 当作用户名/密码与 host 的分隔符。例如密码是 pa@ss/word,未编码就填进去,实际解析成 user=pa、pass=ss/word、host=ss/word —— 显然错乱。
正确做法是前端编码后再填:
- 原始密码:
pa@ss/word - 编码后:
pa%40ss%2Fword(可用浏览器控制台跑encodeURIComponent('pa@ss/word')) - Database Client 配置中直接填编码后字符串;SQLTools 的 JSON 配置同理
这个细节极容易被忽略,且错误表现是“密码错误”而非格式异常,排查成本高。
真正麻烦的不是连不上,而是连上了却因 autocommit、SSL、authPlugin 或编码问题导致行为不可控——这些点不写死在配置里,每次换机器或重装都得重踩一遍。

















