vscode直连mysql需sqltools+mysql/mariadb driver扩展组合,因mysql 8+默认caching_sha2_password认证,旧插件不兼容;必须配置authplugin为mysql_native_password并重启vscode。

VSCode 本身不支持直连 MySQL,必须依赖扩展;目前最稳定、适配 MySQL 8+ 的方案是 SQLTools + SQLTools MySQL/MariaDB Driver,其他单一插件(如旧版 vscode-mysql)已停更,无法处理 caching_sha2_password 认证问题,连都连不上。
为什么装了 MySQL 插件却连不上?
常见错误不是密码错,而是插件底层不兼容 MySQL 8.0+ 默认认证协议。官方驱动从 8.0 开始默认用 caching_sha2_password,但很多老插件只认 mysql_native_password。
- 看到报错
Client does not support authentication protocol:必须在连接配置里加"authPlugin": "mysql_native_password" - 只装
SQLTools主体不行,必须额外安装SQLTools MySQL/MariaDB Driver—— 缺一不可,且装完要重启 VSCode - 用
mysql插件(cweijan 版)看似简单,但它不支持 socket 连接、无连接复用、查询结果截断严重,且对中文字段名补全失效
sqltools.json 配置必须填哪些字段?
路径在 %USERPROFILE%\.sqltools\config.json(Windows)或 ~/.sqltools/config.json(macOS/Linux),不能靠图形界面填完就完事——它只读这个文件。
- 必填项:
"host"(别写localhost,优先用127.0.0.1)、"port"(默认3306)、"username"、"password" -
"database"可为空,但留空后首次查询得先执行USE db_name;,不能直接在连接里选库 - MySQL 8+ 必须加:
"authPlugin": "mysql_native_password",否则握手失败 - 本地 macOS M 系列芯片用户注意:
"socketPath"可能比host更可靠,路径通常是/opt/homebrew/var/mysql/mysql.sock
查询执行后没结果,状态栏也没连接名?
这不是数据库问题,是 VSCode 没把当前 SQL 文件和连接绑定上。SQLTools 不会自动关联,得手动触发一次。
- 新建一个
query.sql文件,哪怕只写SELECT 1; - 右键编辑器 → 选
SQLTools: Run Current Query(或Ctrl+Shift+P输入该命令) - 首次运行会弹出连接选择框,选你刚配好的那个;之后右下角状态栏才显示连接名,表示已激活
- 如果状态栏没显示连接名,所有查询都会静默失败,不报错也不出结果
想看表结构或导出数据,但功能很简陋?
SQLTools 定位是轻量开发辅助,不是 Navicat 替代品。它能查、能改、能看基础结构,但关键能力有硬限制:
-
DESCRIBE table_name;可用,SHOW CREATE TABLE结果会被截断(尤其含长注释或 JSON 字段时) - 不支持点击表名跳转到 DDL 或字段定义,也不能双击编辑某行数据
- 结果面板支持复制整列、导出 CSV,但不支持分页、不支持保存查询历史
- 复杂 DDL、权限管理、存储过程调试等,仍得回命令行或用
DBeaver
真正卡住人的从来不是“怎么连”,而是连上之后发现连接没激活、认证插件没配、或者误以为图形界面填完就等于配置生效——这些细节不写进配置文件,SQLTools 就当不存在。











