当我尝试连接SQL Server时,我得到以下错误:

在建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确,SQL Server是否配置为允许远程连接。(提供商:Named Pipes提供商,错误:40 -无法打开到SQL Server的连接)

当我试图在Visual Studio 2010中将数据库配置为gridview时抛出此错误。我不知道如何调试这个错误。

如何调试此错误?除了错误消息中提到的步骤之外,我还应该采取哪些步骤来确定这里到底发生了什么?


当前回答

这个解决方案解决了SQL服务器背后的网络错误和服务问题

我在这里回答了一个类似的问题,您需要统计其他开放运行类型->服务。msc -在服务->排序停止你会看到一堆停止的SQL服务右键单击并启动

开始-有4个问题可能会导致常见的LocalDb SqlExpress Sql Server连接错误Sql网络接口,错误:50 -本地数据库运行时错误发生,在开始之前,您需要将v11或v12重命名为(LocalDb)\mssqllocaldb


Troubleshooting Steps

您没有正在运行的服务,执行命令net start MSSQLSERVER或net start MSSQL$ instancename 这里没有防火墙端口 配置 你的安装有问题/损坏(下面的步骤可以帮助你一个干净的开始) 您没有将V11或12重命名为mssqllocaldb/SqlServer

我发现最简单的是做下面的事情——我附上了图片和步骤以寻求帮助。


Resolution Steps:

首先验证您已经安装了哪个实例,您可以通过检查注册表并运行cmd来完成此操作

i .执行命令> Sqllocaldb.exe cmd> Sqllocaldb.exe s "那个versionyouwantfromlistbefore " 如果此步骤失败,可以使用选项d删除cmd> Sqllocaldb.exe d "someDb" cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb" cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"


重新启动MSSql服务器或简单地重新启动您的机器!

按住/按打开CMD,窗口+ R,输入“services.msc” 现在寻找sql server服务,打开查找带有实例名的sql server 然后重新启动此服务并重试

其他回答

我也有这个问题,我尝试了这篇文章中建议的所有方法,但没有任何效果。最后,我通过在SQL Server中执行这个查询解决了我的问题

EXEC sp_configure 'remote access', 0 ;  
GO  
RECONFIGURE ;  
GO  

当我想在另一台PC上运行我的WinForms项目(包括使用SQL Server数据库,并且在我的PC上工作得很好)时,我也犯了同样的错误。问题出在我电脑的Windows防火墙上。我通过添加两条规则来解决这个问题。这是如何允许SQL Server通过Windows防火墙的整个过程:

打开“运行”,输入services.msc 查找用于SQL Server(实例名)和SQL Server Browser的服务。一次一个,右键单击,选择“属性”,复制路径到exe文件 然后打开防火墙。cpl,单击允许应用程序或添加规则,添加之前复制的路径(有一个步骤需要遵循),选中域和私有,取消选中公共。

这是YouTube的链接,你可以看到这个过程:允许SQL Server通过Windows防火墙

如果以上解决方案都不起作用(对我来说都不起作用),那么只需重新启动计算机,您就可以连接到sql server (localhost)。

把我的高度好评的评论作为一个截图的回答。

我在这上面花了很多时间,最后对我有用的是:

1)打开Sql Server Configuration Manager—> Sql Server Network Configuration—> Protocols for <(INSTANCE)>—> TCP/IP(双击它)。

2)选择“——> IP Addresses(Tab)”。

3)转到最后一个条目IP All,并提到TCP端口1433。

4)按“Win+R”,输入services.msc。

5)现在重启SQL Server <(INSTANCE)>。

在这之后,问题解决了!

azure vm用户

我已经尝试了上面所有的(所以这些仍然可能是有效的),但仍然没有wotk。

重要提示:我的只是一个游乐场服务器,所以安全性真的不是问题。所以你要做好调查,这只是一种变通方法,不是安全的方法。

确保可以ping通服务器。在我的情况下,我可以RDP,但不能ping我的服务器在Azure上。我的请求总是超时。因为似乎Azure默认阻止ICMP协议。

您可以在防火墙中添加规则。在我的例子中,无论我在那台机器上通过防火墙添加了什么,都没有任何改变。感谢@John的上述回答,这也提醒了我,我必须从Azure门户上的网络添加这个。

只要我为端口0添加了规则,我就可以远程连接了。

这个链接这个链接也很有用。