You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署MySQL无法连接VS WCF项目(Error 40)求助

问题分析与解决方案

核心问题

你遇到的SQL Server Error 40是关键线索——这说明你的Visual Studio项目里误选了SQL Server作为数据源,而非MySQL,和服务器地址的填写方式无关。

解决步骤

  • 修正数据源类型
    不要使用Visual Studio默认的SQL Server连接向导,要么选择MySQL数据源(需提前安装MySQL for Visual Studio插件),要么直接手动编写MySQL格式的连接字符串。
    正确的连接字符串示例:

    Server=localhost;Port=6033;Database=mysql_db;Uid=piris_sample_user;Pwd=pirisExamplePASS;
    

    注意:不要添加http://前缀,服务器填写localhost或127.0.0.1,端口用容器映射的宿主机端口6033。

  • 检查项目配置文件
    打开项目的app.config或web.config,确认连接字符串的providerName是MySql.Data.MySqlClient,而非SQL Server的提供者。示例配置片段:

    <connectionStrings>
      <add name="MySqlConnection" 
           connectionString="Server=localhost;Port=6033;Database=mysql_db;Uid=piris_sample_user;Pwd=pirisExamplePASS;" 
           providerName="MySql.Data.MySqlClient" />
    </connectionStrings>
    
  • 验证NuGet包兼容性
    确认项目中安装的MySQL.Data NuGet包版本与MySQL容器版本(5.7)兼容,版本不匹配可能导致连接失败。

  • WSL2环境额外处理
    如果你的Docker运行在WSL2环境中,localhost可能无法直接访问容器,需要换成WSL2的IP地址(通过在WSL终端执行hostname -I获取),再用该IP加6033端口连接。

  • 防火墙检查
    确认宿主机防火墙没有阻止6033端口的入站连接,避免端口被拦截。

内容的提问来源于stack exchange,提问作者Alexey Ryb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:25:19