如何从VSCode连接Docker部署的MySQL容器?扩展连接报错如何解决
报错原因
核心错误是数据库客户端与服务端协议不匹配,具体说明:
- VS Code的
MSSQL扩展是微软官方推出的仅用于连接Microsoft SQL Server(SQL Server) 数据库的专用扩展,不支持MySQL数据库的通信协议。 - 目前Docker中运行的是MySQL服务,默认使用3306端口,与SQL Server的通信协议、默认端口(1433)完全不兼容,因此会抛出内部连接致命错误。
- docker-compose.yml中写的
ACCEPT_EULA: "Y"是SQL Server镜像要求的环境变量,对MySQL镜像无效,属于冗余配置。
解决方案
根据实际需求二选一即可:
方案1:继续使用MySQL,更换适配的VS Code扩展
停用或卸载MSSQL扩展,安装支持MySQL的VS Code扩展,可选扩展包括:
- 官方推出的
MySQL Shell for VS Code - 第三方通用数据库扩展
Database Client
安装完成后按照扩展指引选择MySQL连接类型,填写localhost、3306端口、root账号、密码admin即可正常连接。
方案2:继续使用MSSQL扩展,更换Docker运行的数据库为SQL Server
修改docker-compose.yml文件为以下内容,启动SQL Server服务后再用MSSQL扩展连接:
services: sql-server-db: container_name: testMSSQL image: mcr.microsoft.com/mssql/server:latest ports: - "1433:1433" environment: SA_PASSWORD: "YourStrong@Passw0rd" ACCEPT_EULA: "Y"
连接时填写服务器为localhost,1433,用户名sa,密码为你设置的SA_PASSWORD即可正常连接。
内容的提问来源于stack exchange,提问作者Emanuel Rojas Agüero
相关产品推荐
相关产品推荐

