You need to enable JavaScript to run this app. Visual Studio及Web应用无法连接远程数据库但MySQL Workbench可连接求助
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio及Web应用无法连接远程数据库但MySQL Workbench可连接求助

问题根因与修复方案

你当前使用的SqlConnection类是微软专为SQL Server数据库设计的连接类,无法用于连接MySQL数据库,这是所有连接报错的核心原因。你能通过MySQL Workbench正常连接,已经确认数据库本身、网络、账号权限都没有问题,问题完全出在应用侧的连接组件和连接字符串格式不匹配MySQL的要求。

第一步:安装MySQL官方.NET连接组件

你需要先安装MySQL官方的ADO.NET驱动,如果你用NuGet包管理,直接安装MySql.Data包即可,若是.NET Core/.NET 5+环境也可以选择性能更优的MySqlConnector包。

第二步:修改代码中的连接类

把原代码中使用的SqlConnection替换为MySQL对应的连接类:
原代码:

using (IDbConnection cnn = new SqlConnection(GetConnectionString()))

修改为(以MySql.Data包为例):

using (IDbConnection cnn = new MySqlConnection(GetConnectionString()))

注意要先引用对应命名空间using MySql.Data.MySqlClient;,如果用MySqlConnector则引用using MySqlConnector;。

第三步:修正连接字符串格式

MySQL的连接字符串格式和SQL Server完全不同,端口可以单独用port参数指定,也不需要Initial Catalog参数,改用Database指定库名,正确格式参考:

<connectionStrings>
    <add name="Database" connectionString="server=***.secureserver.net;port=你的MySQL端口(默认3306);database=ph16971171408_;uid=你的账号;pwd=你的密码;" />
</connectionStrings>

注:如果你的MySQL端口就是默认的3306,可以省略port参数不写。

之前报错的原因说明

  • 你之前收到的Named Pipes Provider, error: 40是SQL Server连接失败的典型报错,因为SqlConnection默认会尝试用SQL Server的协议去连接你给的地址,自然识别不了MySQL服务
  • 用逗号分隔端口是SQL Server连接字符串的规则,放到MySQL的连接逻辑里自然会报错,MySQL连接字符串的端口通过单独的port参数指定即可,不需要拼在服务器地址后面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 18:18:03