VS Code 连接数据库完全依赖扩展,SQLTools(需配驱动)最常用,官方插件开箱即用但兼容性差;MySQL 8+ 认证失败多因 caching_sha2_password 不支持;PostgreSQL 连接失败常因 pg_hba.conf 未授权或 database 字段为空;导出、多环境、密码安全需手动配置。

用 VS Code 连接数据库,本质是靠扩展,不是靠 VS Code 自身
VS Code 本身不带数据库连接能力,所有“连上 MySQL”“查 PostgreSQL 表”的操作,都依赖第三方扩展。最常用、维护最活跃的是 SQLTools(配合对应驱动插件),其次是厂商官方扩展(如 MySQL 官方插件、PostgreSQL 官方插件)。选错扩展或漏装驱动,就会卡在“填完地址连不上”。
-
SQLTools是通用前端,必须额外安装对应语言的驱动插件(如SQLTools MySQL/MariaDB Driver);只装前端不装驱动,连接时会报Driver not found - 官方插件(如
MySQL)开箱即用,但通常只支持自家数据库,且更新节奏较慢,遇到新版本协议(如 MySQL 8.4 默认 require caching_sha2_password)可能直接认证失败 - 不要装多个同类插件(比如同时启用
SQLTools+MySQL官方插件),它们会抢.sql文件关联和右键菜单,导致右键“Run Query”失效
连接 MySQL 8+ 时,90% 的失败源于 auth plugin 不匹配
MySQL 8.0.4+ 默认使用 caching_sha2_password 认证方式,而很多 VS Code 插件(尤其旧版驱动)只支持 mysql_native_password。现象是:用户名密码没错,但提示 Access denied for user 或 Client does not support authentication protocol。
- 临时解决:登录 MySQL 命令行,执行
ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_pass'; - 长期建议:升级插件到最新版(
SQLTools MySQL Driver v0.27.0+已支持caching_sha2_password),并确认插件设置里启用了ssl(若服务端强制 SSL) - 本地开发可绕过:启动 MySQL 时加参数
--default-authentication-plugin=mysql_native_password,但仅限测试环境
连接 PostgreSQL,注意 postgres 用户默认无密码,且 pg_hba.conf 拦截
VS Code 插件连 PostgreSQL 报 connection refused 或 password authentication failed,大概率不是密码输错,而是服务未监听或权限未放行。
- 确认 PostgreSQL 正在运行:
sudo systemctl status postgresql(Linux/macOS)或任务管理器查postgres.exe(Windows) - 检查
postgresql.conf中listen_addresses是否包含'localhost'或'*',默认可能是'127.0.0.1',VS Code 插件有时会尝试走 IPv6 导致失败 - 重点看
pg_hba.conf:添加一行host all all 127.0.0.1/32 md5并重载配置(SELECT pg_reload_conf();),否则即使密码对也会被拒 - 插件里填的
database字段不能留空——即使只想连上服务器看库列表,也得填一个真实存在的库名(如postgres)
查询结果导出、多环境切换、敏感信息保护这些事,插件不会自动帮你做
VS Code 插件能连上、能执行 SELECT,但后续动作全靠手动。没人提醒你导出 CSV 时中文乱码,也没人拦着你把 production.json 里的数据库密码直接写进插件配置。
- 导出结果含中文?右键“Save as CSV”后用 Excel 打开是乱码 → 改用“Copy as CSV”,粘贴到记事本再另存为 UTF-8 编码
- 开发/测试/生产三套连接配置?别手输三次——用
SQLTools的Connections配置文件功能,存成 JSON,不同环境用不同 profile - 密码明文存在
settings.json?立刻删掉。改用系统密钥链(macOS Keychain / Windows Credential Manager),SQLTools支持调用,配置项叫sqltools.useSystemKeychain
真正麻烦的从来不是点几下连上,而是连上之后,哪条连接用在哪份代码里、密码怎么轮换、导出的数据谁能看到——这些 VS Code 不管,插件也不管。










