database client 是纯 mysql 日常开发最省心的选择,因其原生支持 mysql 5.7~8.4(含 caching_sha2_password)、无需额外驱动、填完 host/port/user/password/database 即可测试连接,且支持右键生成语句、实时刷新结构树等高效功能。

直接连 MySQL,别装 SQLTools 主扩展 + 驱动这种组合——除非你真要同时管 PostgreSQL 和 SQLite。对纯 MySQL 日常开发(查数据、改字段、跑迁移),Database Client(作者 cweijan)是当前最省心的选择:填完 host/port/user/password/database 就能点“测试连接”,不弹 Java 错误、不卡在 “Connecting…”、不报 Client does not support authentication protocol。
为什么 Database Client 比 SQLTools 更适合单 MySQL 场景
SQLTools 是个平台型插件,本身不带任何驱动,必须额外装 SQLTools MySQL Driver 才能连 MySQL。但这个过程容易出错:搜错名字(比如装成 MySQL Connector/NET)、没重启 VS Code、驱动未启用,都会导致连接失败且日志只显示 Connection refused,实际是驱动根本没加载。
Database Client 不同:它原生打包了 MySQL 5.7~8.4 支持,包括默认的 caching_sha2_password 认证;不依赖 Java 或额外二进制;连接表单直填,不用手动编辑 connections.json 或 config.json。
- 它支持右键表名 →
Generate SELECT statement,生成可编辑语句,避免手敲拼错表名 - 侧边栏直接显示库→表→列结构,双击字段还能看注释
- 建表、加索引、改字段类型等 DDL 操作,执行后立刻刷新结构树,不用手动刷新
Database Client 连接 MySQL 必填的四个参数
安装插件后,点击侧边栏 Database 图标 → + Add Connection → 选 MySQL,以下字段不能空或填错:
-
Host:本地 MySQL 填localhost;Docker 容器填host.docker.internal(macOS/Windows)或宿主机 IP(Linux) -
Port:默认3306;若 Docker 映射到3307,就填3307,不是容器内端口 -
Password:必须填,即使你用的是空密码——留空会静默失败,不报错也不连上 -
Database:必须填具体库名(如myapp_dev),留空会导致执行SELECT * FROM users时直接报错Table 'users' doesn't exist
其他字段如 SSL、Connection timeout 可保持默认;charset 实际由插件自动设为 utf8mb4,无需手动干预。
常见连不上原因和对应解法
连不上基本就三类问题:认证失败、网络不通、权限不足。别急着重装插件,先看错误信息再动手:
- 报
Client does not support authentication protocol:说明 MySQL 8+ 用了caching_sha2_password,而你装的是老插件(如vscode-mysql)。卸载它,换Database Client即可解决 - 报
Access denied for user 'root'@'127.0.0.1':检查 MySQL 用户是否允许本地连接——运行mysql -u root -p能进,不代表 VS Code 能连;需确认用户是'root'@'localhost'或'root'@'%',不是'root'@'127.0.0.1' - 报
Connection refused:先确认 MySQL 服务在运行(sudo service mysql status),再检查bind-address是否为0.0.0.0(而非127.0.0.1);Docker 用户注意宿主端口映射是否生效(docker ps看 PORTS 列)
执行 SQL 后看不到结果?先看右下角状态栏
连接成功 ≠ 查询自动执行。很多用户写完 SELECT * FROM users; 右键却没反应,是因为没绑定连接上下文:
- 新建一个
.sql文件,保存后,右下角状态栏应显示类似MySQL: myapp_dev—— 没显示说明文件没关联连接 - 此时右键编辑器 →
Change Connection,选你刚配好的那个连接 - 或者:光标放在 SQL 语句里,按
Ctrl+Shift+P→ 输入Database Client: Execute Query,手动选连接 - 结果默认在下方
Database Client Results面板以表格展示,支持复制整列、导出 CSV;但不支持点击跳转到对应表结构页——这点得习惯
真正容易被忽略的是:如果连接时没填 Database 字段,后续所有查询都默认在无库上下文中执行,哪怕你右键表名生成的语句也带不了库前缀,USE xxx; 语句又不会持久生效。所以第一次配连接,Database 字段别空着。











