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.DataNuGet包版本与MySQL容器版本(5.7)兼容,版本不匹配可能导致连接失败。WSL2环境额外处理
如果你的Docker运行在WSL2环境中,localhost可能无法直接访问容器,需要换成WSL2的IP地址(通过在WSL终端执行hostname -I获取),再用该IP加6033端口连接。防火墙检查
确认宿主机防火墙没有阻止6033端口的入站连接,避免端口被拦截。
内容的提问来源于stack exchange,提问作者Alexey Ryb
相关产品推荐
相关产品推荐

