如何设置VSCode连接MySQL数据库?推荐哪些数据库管理插件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计884个文字,预计阅读时间需要4分钟。
plaintextDatabase Client(cweijan 版)是 VSCode 中连接 MySQL 的最佳选择,特别适合仅使用 MySQL 的日常开发。安装完成后,即可填写参数进行测试连接,不会出现Client does not support authentication protocol的错误,也不会卡在Connecting...界面。
为什么连不上?先看错误信息再动手
连 MySQL 失败基本就三类原因,对应不同解法:
-
Access denied for user:不是密码输错了,而是 MySQL 没开localhost或%的登录权限。执行CREATE USER 'vscode'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON *.* TO 'vscode'@'localhost'; FLUSH PRIVILEGES; -
Client does not support authentication protocol:MySQL 8.0+ 默认用caching_sha2_password,但部分插件只认mysql_native_password。进 MySQL 执行ALTER USER 'vscode'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; -
Connection refused:检查mysqld进程是否运行(sudo systemctl status mysql或任务管理器),再确认netstat -ano | findstr :3306(Windows)或lsof -i :3306(macOS/Linux)有没有监听;Docker 用户注意宿主机端口是否映射正确
Database Client 连接配置必须填对的四个字段
它不依赖额外驱动,原生支持 MySQL 5.7~8.4,但以下字段留空或填错就会静默失败:
-
Host:本地填localhost;Docker 容器填host.docker.internal(macOS/Windows)或宿主机 IP(Linux) -
Port:显式写3306,别省略;若 Docker 映射到 3307,就填3307 -
Password:即使为空密码,也得填一个空格或留字段但不删——留空会导致连接不触发、无报错 -
Database:必须填具体库名(如myapp_dev);留空后右键“Select All Rows”会直接报Table 'users' doesn't exist
SQLTools + 驱动组合的硬性前提
如果你真要同时管 PostgreSQL、SQLite 和 MySQL,SQLTools 是更稳的方案,但必须满足三个条件:
- 装
SQLTools主体扩展 +SQLTools MySQL/MariaDB Driver(不是“MySQL Connector/NET”或其他名字) - 装完必须重启 VSCode,否则驱动不会加载,日志只显示
Connection refused,实际是根本没走认证流程 - 连接配置里必须加
"authPlugin": "mysql_native_password",路径在~/.sqltools/config.json(macOS/Linux)或%USERPROFILE%\.sqltools\config.json(Windows);图形界面填的参数不生效
执行查询前最容易被忽略的一件事
无论用哪个插件,只要状态栏右下角没显示连接名(比如 mysql://vscode@localhost:3306/myapp_dev),所有 SQL 都是静默失败的——不报错、不出结果、也不提示未连接。
补救方法很简单:新建一个 .sql 文件,写一行 SELECT 1;,右键 → “Run Current Query”,首次会弹出连接选择框;选中你的连接后,状态栏才真正激活。之后再点表名查数据、右键生成语句,才会有上下文。
这个“手动激活连接上下文”的步骤,文档不提、插件也不提醒,但它是绝大多数“点了没反应”的真正原因。
本文共计884个文字,预计阅读时间需要4分钟。
plaintextDatabase Client(cweijan 版)是 VSCode 中连接 MySQL 的最佳选择,特别适合仅使用 MySQL 的日常开发。安装完成后,即可填写参数进行测试连接,不会出现Client does not support authentication protocol的错误,也不会卡在Connecting...界面。
为什么连不上?先看错误信息再动手
连 MySQL 失败基本就三类原因,对应不同解法:
-
Access denied for user:不是密码输错了,而是 MySQL 没开localhost或%的登录权限。执行CREATE USER 'vscode'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON *.* TO 'vscode'@'localhost'; FLUSH PRIVILEGES; -
Client does not support authentication protocol:MySQL 8.0+ 默认用caching_sha2_password,但部分插件只认mysql_native_password。进 MySQL 执行ALTER USER 'vscode'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; -
Connection refused:检查mysqld进程是否运行(sudo systemctl status mysql或任务管理器),再确认netstat -ano | findstr :3306(Windows)或lsof -i :3306(macOS/Linux)有没有监听;Docker 用户注意宿主机端口是否映射正确
Database Client 连接配置必须填对的四个字段
它不依赖额外驱动,原生支持 MySQL 5.7~8.4,但以下字段留空或填错就会静默失败:
-
Host:本地填localhost;Docker 容器填host.docker.internal(macOS/Windows)或宿主机 IP(Linux) -
Port:显式写3306,别省略;若 Docker 映射到 3307,就填3307 -
Password:即使为空密码,也得填一个空格或留字段但不删——留空会导致连接不触发、无报错 -
Database:必须填具体库名(如myapp_dev);留空后右键“Select All Rows”会直接报Table 'users' doesn't exist
SQLTools + 驱动组合的硬性前提
如果你真要同时管 PostgreSQL、SQLite 和 MySQL,SQLTools 是更稳的方案,但必须满足三个条件:
- 装
SQLTools主体扩展 +SQLTools MySQL/MariaDB Driver(不是“MySQL Connector/NET”或其他名字) - 装完必须重启 VSCode,否则驱动不会加载,日志只显示
Connection refused,实际是根本没走认证流程 - 连接配置里必须加
"authPlugin": "mysql_native_password",路径在~/.sqltools/config.json(macOS/Linux)或%USERPROFILE%\.sqltools\config.json(Windows);图形界面填的参数不生效
执行查询前最容易被忽略的一件事
无论用哪个插件,只要状态栏右下角没显示连接名(比如 mysql://vscode@localhost:3306/myapp_dev),所有 SQL 都是静默失败的——不报错、不出结果、也不提示未连接。
补救方法很简单:新建一个 .sql 文件,写一行 SELECT 1;,右键 → “Run Current Query”,首次会弹出连接选择框;选中你的连接后,状态栏才真正激活。之后再点表名查数据、右键生成语句,才会有上下文。
这个“手动激活连接上下文”的步骤,文档不提、插件也不提醒,但它是绝大多数“点了没反应”的真正原因。

