Database Client(cweijan)填完host/port/username/password四字段即可连接MySQL 8.0+,需注意认证协议匹配(启用mysql_native_password)、host填127.0.0.1避socket歧义、Password和Database字段不可留空。

连 MySQL 不用装一堆插件,也别折腾 JDBC 或驱动路径——对纯 MySQL 日常开发(查数据、改字段、跑迁移),Database Client(作者 cweijan)填完四个字段就能执行 SELECT * FROM users,不报 Client does not support authentication protocol,也不卡在 “Connecting…”。
MySQL 8.0+ 连不上?先看认证协议是不是没对上
MySQL 8.0 默认用 caching_sha2_password 认证,但很多插件(包括旧版 SQLTools 驱动)只认 mysql_native_password。现象是点连接后无响应,或日志里只显示连接超时,实际根本没完成握手。
- 临时解法:进 MySQL 命令行执行
ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; - 配置解法(推荐):在
Database Client连接表单里勾选 “Use native password” 或手动加"authPlugin": "mysql_native_password"字段(部分版本支持) - 别试
vscode-mysql或vscode-database:这两个已停更,8.0+ 下必挂
Host 填 localhost 还是 127.0.0.1?取决于你的 MySQL 绑定方式
MySQL 默认可能只监听 127.0.0.1(TCP),而 localhost 在 Linux/macOS 上会走 Unix socket 文件;若 socket 被禁用或路径不对,填 localhost 就直接失败,错误表现是 Connection refused。
- 本地开发建议统一填
127.0.0.1,绕过 socket 解析歧义 - Docker 场景:
host.docker.internal(macOS/Windows),Linux 则填宿主机真实 IP(如192.168.1.100) - 云服务器:确认安全组放行了
3306端口,且 MySQL 没配bind-address = 127.0.0.1
Database Client 和 SQLTools 怎么选?看你要不要跨库
Database Client 是单库场景的“开箱即用”答案;SQLTools 是多库共存时的模块化方案——但必须配对安装驱动,否则就是个空壳。
- 只用 MySQL:装
Database Client,不用重启 VS Code,填完host/port/username/password就能测试连接 - 同时连 MySQL + PostgreSQL + SQLite:装
SQLTools主体 +SQLTools MySQL Driver(作者 mtxr)+SQLTools PostgreSQL Driver,装完必须重启 VS Code - 别搜错驱动名:市场里叫 “MySQL Driver” 的有七八个,只认
SQLTools MySQL Driver(mtxr);装错就永远卡在 “No driver found for MySQL”
Password 留空、Database 留空,都会静默失败
Database Client 表单看着简单,但两个字段留空会导致连接逻辑中断,而且不报错:
-
Password字段必须填——哪怕你设的是空密码,也得打一个空格进去,否则连接直接跳过认证步骤 -
Database字段必须填具体库名(如myapp_dev),留空会导致右键表名 → “Select All Rows” 报错Table 'users' doesn't exist,因为插件不会自动 USE 库 -
Port建议显式写3306,尤其你本地跑着多个 MySQL 实例(比如 Docker 映射到3307)
最易被忽略的是连接绑定:SQLTools 不会自动把当前 .sql 文件和某个连接关联,第一次执行前得右键 → “Set Connection”,否则状态栏不显示连接名,查询也发不出去。这个动作没有视觉反馈,很多人以为连上了,其实只是开着个空面板。


















