我似乎无法从站点连接到我的数据库。我收到此错误:
命名管道提供程序,错误:40 - 无法打开与SQL Server的连接
我尝试使用本地IP地址连接以及公共IP地址。我试过了:
我还能在这做什么?
解决这个问题非常简单:
步骤截图:
在我的情况下,我有一个独立的服务器,我将配置管理器中的sql server端口默认端口1433更改为某个数字并重新启动sql serve服务生效,如果我登录,我能够通过管理工作室连接到sql server到服务器。但我无法通过sql server从本地机器连接,我收到错误:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确
SQL Server配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)(Microsoft SQL Server,错误:5)
我检查并验证了以下所有内容
已启用-Named管道/ TCP。 - 允许远程连接。 -Windows防火墙已关闭 - 对于portin Windows防火墙来说是例外(在我的情况下这不是必需的,因为服务器位于同一子网中)。 -Enabled SQL Server配置管理器中的所有内容。
然后我将端口号更改为默认值1433并重新启动sql server服务,问题得到解决,我可以从本地管理工作室连接sql server。
我有同样的问题。我使用MSSQL Server Management Studio 2017并使用以下步骤解决了这个问题:
并修复它。
请尝试以下步骤:
尝试Open SQL并连接数据库。
如果您正在使用Asp.net核心并使用appsettings.json而不是将服务器写为localhost,并且在为此命令管道写入sql实例名称之后
"ConnectionString": {
"dewDB": "server=localhost\\dewelopersql;database=dewdb;User ID=sa;password=XXXXX",
},
按照here提到的所有步骤后,如果仍然没有连接,请尝试在etc文件夹的hosts文件中添加带有IP地址的DNS。在连接字符串中添加IP地址而不是DNS名称应该是检查连接是否实际工作的临时解决方案。
我尝试使用本地IP地址连接以及公共IP地址。我试过了:
是的,站点可以与服务器通信命名管道/ TCP已启用。允许远程连接。 Windows防火墙已关闭在Windows防火墙中为端口1433创建了一个例外。在SQL Server配置管理器中启用了所有内容。
我确保并完成了上述操作,我只是想分享那个DOUBLE BACKSLASH
oBuilder.DataSource =“SPECIFICPCNAME \ SQLEXPRESS”;
使用SINGLE BACKSLASH导致构建错误,即:错误1无法识别的转义序列
我希望这有助于下一个人 - 我牺牲了晚餐,午夜小吃和NBA亮点时间解决这个问题(羞耻)
感谢[Tamizh venthan] ^ _ ^
通过转到计算机管理 - > SQL和服务启用TCP / Ip,管道协议,确保服务已打开。安装防火墙上的端口。尝试通过命令提示符登录 - >作为管理员;最后用户名应该是(本地)\ SQLEXPRESS。希望这可以帮助。
打开SQL Server配置管理器
我有同样的问题,通过禁用我的防火墙(ESET)解决了这个问题。
解决此问题的第一步应该是尝试从另一台计算机ping您自己的计算机。如果您启用了防火墙,则可能无法自行ping通。我尝试ping我自己的电脑,然后ping失败(没有得到服务器的响应)
最简单的解决方案 - 检查你的斜线是否回来了......
我花了大约一个小时试图弄清楚什么是SERVER / INSTANCENAME什么是错误的,当一切配置正确,命名管道,用户访问权限......然后它突然袭击我,它不是斜线,它是一个反斜杠(\
)。
恐怖,耻辱......
我已建议以下步骤来解决您的问题如何修复错误'命名管道提供程序,错误40 - 无法打开与'SQL Server'的连接
我试图在VS2015中添加新连接。这里的建议都没有奏效。怀疑向导中存在某种错误,特别是因为SSMS能够很好地连接,我决定尝试欺骗它。有效!
我想,我还有一个解决方案。我最近改变了我的计算机名称,因此在尝试了以上所有方法之后仍无法连接。我更改了服务器名称..服务器名称=>(浏览更多)=>在数据库引擎下,找到了与计算机新名称相同的新服务器。这很有效,生活又好了。
在我意识到错误之前,我在这个问题上挣扎了好几年 - 我在连接字符串中使用了逗号而不是分号
我有这个问题,但上面的建议没有修复它。
当我将我的网站部署到IIS时,我看到了这个问题。修复是针对默认应用程序池进入高级设置,并将标识属性从默认值更改为管理员。
对我来说这是一个防火墙问题。
首先你必须添加端口(例如1444和1434)
C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe
和
%ProgramFiles%\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\SQLAGENT.EXE
我第二次遇到这个问题是当我回到防火墙时,路径不正确,我需要将表格12更新为13!只需单击“程序和服务”选项卡中的“浏览”,即可实现此目的。
最后,尝试运行该命令
EXEC xp_readerrorlog 0,1,“无法注册服务主体名称”,Null
对我来说,它返回了错误原因
我在这个页面上尝试了很多东西,但是我遇到了一些潜在的问题,实际上需要解决的问题。我无法做某些事情,比如打开SQL Server配置管理器,最终导致WMI提供程序文件损坏/丢失。
根据我读过的内容,有很多繁琐的方法来解决这个问题,但tweaking.com的工具能够删除和替换/修复我的WMI(Windows Management Instrumentation)提供程序文件。
我曾经做过电脑维修,总体而言tweaking.com工具给我留下了深刻的印象,并且是我在其中一个WMI错误论坛页面上建议的。
解决了这个问题后,我能够在本地和远程连接到我的SQL数据库。
希望这有助于某人。
在服务器上打开端口号1433以进行sql远程连接
很简单的解决方案
使用(local)\InstanceName
就是这样。它对我有用。
TL; DR;您的SQL Server实例正在使用无效的动态端口。强制SQL Server使用静态端口#1433。
完整的详细信息:首先,如果您只混合使用默认和命名实例或命名实例(这是我的情况),则更有可能出现此问题。
关键概念:计算机上安装的每个Microsoft SQL Server实例都使用不同的端口来侦听传入的连接请求。 SQL Server的默认实例使用端口#1433。当您安装命名实例时,它们将开始使用动态端口,这是在启动与命名SQL Server实例相对应的Windows服务时决定的。
我的代码失败(错误代码为40)连接到我在VM上唯一命名的SQL Server实例。您可以尝试以下可能的解决方案
解决方案#1:尝试连接到SQL Server实例的客户端代码从SQL Server浏览器服务获取帮助,以确定命名实例正在侦听传入连接的端口号。确保您的计算机上正在运行SQL浏览器服务。
解决方案#2:检查您的命名SQL Server实例正在使用的端口#(黄色)来自SQL Server配置管理器,如下面的快照所示:
在您的连接字符串中明确使用该端口号,或使用下面显示的sqlcmd
:
sqlcmd -s mymachinename,11380 -i deleteDB.sql -o SQLDelete.txt
解决方案#3:强制命名实例使用默认实例使用的端口#1433。请记住,只有当您的计算机上没有任何默认的SQL Server实例时,这才会起作用,因为默认的SQL Server实例已经使用端口#1433。两个不同的Windows服务不能使用相同的端口号。
标记TCP Dynamic ports
字段为空白,TCP Port
字段为1433。
更改连接字符串中的端口号,如下所示:
sqlcmd -s mymachinename\instanceName -i deleteDB.sql -o SQLDelete.txt
要么
sqlcmd -s mymachinename,1433 -i deleteDB.sql -o SQLDelete.txt
注意:TCP / IP设置中的每次更改都需要重新启动相应的Windows服务。
有趣的是,当我回到动态端口设置重现相同的错误后解决错误后,它没有发生。不知道为什么。
请阅读以下有趣的主题以了解有关SQL Server动态端口的更多信息:
How to configure SQL Server Port on multiple instances?
When is a Dynamic Port “dynamic”?
When to use a TCP dynamic port and when TCP Port?
我从this博客获得了解决我的问题的线索。
我刚刚安装了SQL SERVER 2012开发人员。当我创建我的第一个SSIS包时,当我尝试在“连接管理器”框中的SQL Server 2012数据工具中创建数据连接任务时,我收到此管道错误。我在上面的帖子的帮助下解决了。
如果选择一个命名实例,并调用命名实例SSQDatabase1,则您的pc名称为PCX1。您必须输入PCX1 \ SSQDatabase1而不仅仅是SSQDatabase1,否则您将收到命名管道错误。
MSDN Social上的一个帖子Re: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server有一个非常不错的列表,列出了与你的错误相关的可能问题。您可能想看看它们中的任何一个是否正如您所遇到的那样。
我刚刚在Sql Server配置管理器中启用了TCP / IP,VIA,命名管道,我的问题得到了解决,请参阅此内容以获取更多信息Resolving Named Pipes Error 40
使用SERVER \\ INSTANCE NAME。在我的项目中使用双反斜杠解决了我的问题。
感谢Damian ......
TCP / IP命名管道......均已启用
Web Config ....(对于localhost)
<add name="FooData" connectionString="Data Source=localhost\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
有同样的问题。不得不迁移一些服务器时花了6个小时。尝试了有关此主题和其他人的所有建议。
解决方案就像服务器重启一样简单!