database client(cweijan开发)是纯mysql日常开发最省心的选择,填完host、port、user、password、database即可测试连接,原生支持mysql 5.7~8.4及caching_sha2_password认证,无需额外驱动或重启,右键生成语句、结构树自动刷新。

直接用 Database Client(cweijan 开发)连 MySQL,填完 host、port、user、password、database 就能通——只要你的 MySQL 服务在跑,且用户允许 localhost 或 127.0.0.1 登录。别折腾 SQLTools + 驱动组合,除非你真要同时管 PostgreSQL 和 SQLite。
为什么 Database Client 比 SQLTools 更适合纯 MySQL 场景
SQLTools 是个平台型插件,本身不带驱动,必须额外装 SQLTools MySQL/MariaDB Driver 才能连 MySQL。但安装后常卡在 “Connecting…” 或报 Connection refused,实际是驱动根本没加载——没重启 VS Code、搜错扩展名、或配置文件路径不对都会导致失败。
Database Client 不同:它把 MySQL 5.7~8.4 的协议栈(含 caching_sha2_password 认证)全打包进去了,不依赖 Java、不调外部二进制、也不读 ~/.sqltools/config.json。连接表单直填,测试按钮一点就出结果。
- 右键表名 →
Generate SELECT statement,生成可编辑语句,避免拼错表名 - 结构树双击字段能看注释,建表/改字段后自动刷新,不用手动点“刷新”
- 不支持 socket 连接(如
/tmp/mysql.sock),也不支持 SSH 隧道——如果你的 MySQL 只监听 Unix socket,得切到 TCP 模式(改bind-address = 127.0.0.1并重启 mysqld)
Database Client 连接必填字段和常见填错点
点击侧边栏 Database 图标 → + Add Connection → 选 MySQL,以下五项不能空或填错:
-
Host:本地开发填127.0.0.1(比localhost更稳,避免 socket 路径干扰);Docker 容器内访问宿主 MySQL 填host.docker.internal(macOS/Windows)或宿主机真实 IP(Linux) -
Port:填容器映射后的端口(如 Docker 映射到3307,就填3307,不是容器内3306) -
Password:空密码也必须填一个空格或留空后删掉再重输——留空会静默失败,不报错也不连 -
Database:必须填具体库名(如myapp_dev),留空会导致执行SELECT * FROM users时直接报Table 'users' doesn't exist -
User:确认该用户有SELECT权限,且host字段匹配(比如root@localhost不能连127.0.0.1,得建root@'127.0.0.1')
连不上时先看错误信息,不是重装插件
报 Client does not support authentication protocol?这不是插件问题,是 MySQL 8+ 默认用 caching_sha2_password,而旧驱动不认——但 Database Client 已原生支持,所以这错误基本只出现在你误装了其他插件(比如停更的 vscode-mysql)时。
真正连不上,大概率是这三类:
-
认证失败:检查
SELECT host, user FROM mysql.user;,确认存在user@'127.0.0.1'行;密码含@、/等字符要 URL 编码(@→%40) -
网络不通:Docker 容器里跑 VS Code?那
localhost指的是容器自身,不是宿主机——必须用host.docker.internal或宿主机 IP -
权限不足:MySQL 8 默认禁用
root@localhost远程登录,但 VS Code 是本地连接,重点查是否允许localhost登录,不是“远程”
执行 SQL 没反应?其实是连接上下文没激活
写完 SELECT * FROM users; 右键运行却没结果、状态栏也没连接名?这不是数据库问题,是 VS Code 没把当前 SQL 文件和连接绑定上。
Database Client 不会自动关联,得手动触发一次:
- 新建一个
query.sql文件,哪怕只写SELECT 1; - 右键编辑器 → 选
Database Client: Run Current Query - 首次运行会弹连接选择框,选你刚配好的那个;之后右下角状态栏才显示连接名,表示已激活
- 如果状态栏没显示连接名,所有查询都静默失败,不报错也不出结果
最易被忽略的是:database 字段填了但没生效——必须重新添加连接(不是刷新),否则插件不会读新值。另外,它不支持多语句分号批量执行(如 CREATE TABLE; INSERT INTO ...),一次只能跑一条。











