Database Client(作者cweijan)是连接MySQL最省事的方案,因其原生支持MySQL 5.7~8.4及caching_sha2_password认证,无需额外驱动或Java环境,填完host/port/user/password/database四字段即可测试连接成功。
连 MySQL 最省事的方案就是用
(作者 cweijan),不是 SQLTools,也不是 MySQL Syntax——后者只高亮,前者配置复杂、容易卡在驱动加载失败。填完 host/port/user/password/database 四个字段,点测试就能通,不报
,也不需要装 Java 或额外二进制。
为什么 Database Client 比 SQLTools 更适合单 MySQL 场景
SQLTools 是平台型插件,自己不带驱动,必须额外装
;但这个过程极易出错:搜错名字、没重启 VS Code、驱动未启用,都会导致连接失败,日志却只显示
,实际是驱动根本没加载。而
原生打包了 MySQL 5.7~8.4 支持,包括
认证,不依赖外部运行时。
连接表单直填,不用手动编辑
或
右键表名 →
,避免手敲拼错
侧边栏实时刷新结构树,建表/改字段后立刻可见,不用手动 F5
填错 host 或 database 导致 Connection refused / No database selected
在 Docker、WSL2、Mac M1 场景下大概率连不通,因为 VS Code 进程运行在宿主系统,而 MySQL 实际监听的是容器或子系统 IP。
Docker:host 填
(Windows/macOS)或网关 IP(Linux),port 填宿主映射端口(如
),不是容器内
WSL2:执行
,取
后的 IP
Mac M1 + Rosetta:尝试把
换成
字段必须填具体库名(如
),留空会导致
直接报
INSERT 后查不到数据,但语法和连接都正常
大概率是事务没提交。虽然
默认开启
,但某些连接参数(比如手动加了
)会把它关掉。
MySQL(Linux)
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
下载
执行完
后,立刻跑
,有返回值说明已写入内存,只是没刷到磁盘
显式加
,或开头先执行
检查连接配置里有没有
字段,删掉含
的参数
注意:SQLite 不支持单独
,得用
包起来
SQL 文件中文乱码或导出失败
VS Code 插件读文件时按 UTF-8 解码,但若你用记事本保存 SQL 文件,默认是 GBK;或者插件发送字符集与 MySQL 服务端不一致,就会出现乱码。pg_dump 类导出失败则多因路径不对——插件不走系统 PATH,而是严格按设置项找。
SQL 文件务必用 VS Code 自己另存为 UTF-8 编码(右下角点击编码 → Save with Encoding → UTF-8)
MySQL 服务端确认
、
、
都是
PostgreSQL 导出失败?终端执行
找到真实
路径,VS Code 设置里填绝对路径,别用
或
最容易被忽略的是
字段留空和密码含
、
等特殊字符——前者直接让所有查询报错,后者需 URL 编码(如
→
)。这些细节不报明显错误,只静默失败或返回空结果。
Database ClientClient does not support authentication protocolSQLTools MySQL DriverConnection refusedDatabase Clientcaching_sha2_passwordconnections.jsonconfig.jsonGenerate SELECT statementlocalhosthost.docker.internal33073306cat /etc/resolv.conf | grep nameservernameserverlocalhost127.0.0.1Databasemyapp_devSELECT * FROM usersTable 'users' doesn't existDatabase Clientautocommit=1options=--init-command="SET autocommit=0"INSERTSELECT LAST_INSERT_ID()COMMIT;SET autocommit = 1;"options"autocommit=0COMMITBEGIN; INSERT; COMMIT;character_set_clientcharacter_set_connectioncharacter_set_databaseutf8mb4pg_config --bindirpg_dump~$HOMEDatabase@/my@pwdmy%40pwd