vscode 无法直接连接 mysql,必须依赖 sqltools + 官方 mysql driver 插件,并确保 mysql 服务运行、权限正确、host 设为 127.0.0.1、防火墙放行 3306 端口。

VSCode 本身不能直接连接 MySQL 数据库——它没有内置的数据库驱动或连接能力,所谓“直接连接”实际依赖扩展插件,且必须配合本地或远程 MySQL 服务运行。
为什么装了插件还是连不上 localhost:3306?
常见错误不是插件没选对,而是 MySQL 服务根本没在运行,或用户权限/绑定地址限制导致拒绝连接:
- 检查 MySQL 是否启动:
sudo systemctl status mysql(Linux/macOS)或任务管理器里看mysqld.exe进程(Windows) - 默认配置下,MySQL 可能只监听
127.0.0.1,但某些插件(如SQLTools)会尝试用localhost解析,触发 IPv6 回环(::1),导致连接超时;解决方法是把 host 改成127.0.0.1而非localhost - root 用户默认可能禁止远程登录(包括本地 socket 以外的连接),需执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; - 防火墙或安全组未放行 3306 端口(尤其云服务器)
推荐插件:SQLTools + MySQL Driver
目前最稳定、更新勤、支持语法高亮/自动补全/结果分页的组合是 SQLTools 主体插件 + 官方认证的 SQLTools MySQL Driver。注意:
- 不要装“MySQL”或“Database Client”这类名字宽泛的插件,多数已停止维护或仅支持基础查询
- 安装后需重启 VSCode,否则连接面板不出现
- 连接配置中
database字段可留空,连上后再选库;若填了不存在的库名,会报错Unknown database 'xxx',但不影响重连 - 密码含特殊字符(如
@、/)时,URL 格式连接会解析失败,务必改用表单方式填写字段
连接后查不出数据?先确认执行模式
SQLTools 默认把文件当作 SQL 脚本执行,但如果你只是打开一个 .sql 文件并按 Ctrl+Enter,它只会发送光标所在行——不是整个文件,也不是选中的块:
- 执行整文件:右键 →
SQLTools: Run Current File,或按Ctrl+Shift+P→ 输入SQLTools: Run Current File - 执行选中语句:必须手动选中(哪怕只有一行),再按
Ctrl+Enter;不选中就按,只执行光标所在行,容易误以为“没反应” - 结果默认以表格形式展示,但大字段(如
TEXT、JSON)会被截断;右键单元格 →Copy Cell Value可获取完整内容 - 如果执行后显示
No results却知道该有数据,检查是否忘了写SELECT——插件不会自动补全,SHOW TABLES或DESCRIBE users这类语句也得手动执行
真正省事的地方在于:不用开终端输命令、不用另起客户端窗口、还能和代码文件共存于同一工作区。但别指望它替代 mysql -u root -p 的调试能力——比如查看慢日志、调优 EXPLAIN 输出格式、或执行存储过程调试,依然得靠原生命令行或专业客户端。











