You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

C#连接XAMPP运行的SQL数据库失败,报TCP Provider错误40求助

解决XAMPP MySQL远程连接错误的核心方案

首先得戳破一个关键误区:你用错数据库连接组件了!

XAMPP默认搭载的是MySQL数据库,但你的代码里用的是SqlConnection——这是微软专门为SQL Server设计的连接类,它会直接尝试去连接SQL Server服务,而不是你的MySQL,这就是报错里反复提到SQL Server的原因,完全是方向错了!

下面一步步帮你解决问题:

1. 替换为MySQL专属的连接组件与字符串

如果你用的是.NET环境,需要先安装MySqlConnector NuGet包(这是目前最常用的MySQL .NET驱动),然后修改你的代码和连接字符串:

修正后的代码示例:

using MySqlConnector;

// 注意连接字符串是MySQL的格式,root默认无密码,如有设置请补充Pwd字段
string connectionString = @"Server=你的笔记本IP;Database=hoffmann;Uid=root;Pwd=;"; 

using MySqlConnection cnn = new MySqlConnection(connectionString);
try
{
    cnn.Open();
    Console.WriteLine("MySQL连接成功!");
}
catch (Exception ex)
{
    Console.WriteLine("连接失败原因:" + ex.Message);
}
finally
{
    cnn.Close();
}

2. 配置MySQL允许远程连接

XAMPP的MySQL默认只允许本地(127.0.0.1)访问,需要手动开启远程权限:

  • 打开XAMPP控制面板,点击MySQL的「Shell」按钮,进入命令行
  • 执行以下授权命令(如果root有密码,把''换成你的密码):
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  • 找到XAMPP安装目录下的mysql/bin/my.ini(Windows)或my.cnf(Linux/Mac),找到bind-address = 127.0.0.1这一行,改成bind-address = 0.0.0.0,保存后重启MySQL服务

3. 检查网络与防火墙设置

  • 确认你的两台设备在同一局域网内,能通过IP互相ping通
  • 开启笔记本上的防火墙允许3306端口(MySQL默认端口)的入站请求,第三方防火墙也要同步设置

原错误里的SQL Server提示完全是因为用了错误的连接类,换成MySQL的组件后,再配合远程权限配置,就能解决问题了!

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

火山引擎 最新活动