为什么我会收到“无法连接到服务器 – networking相关或特定于实例的错误”?

尝试连接到SQL Server时出现以下错误:

无法连接到108.163.224.173。

与SQL Serverbuild立连接时发生networking相关或特定于实例的错误。

服务器未find或无法访问。 validation实例名称是否正确,并将SQL Serverconfiguration为允许远程连接。

(提供程序:命名pipe道提供程序,错误:40 – 无法打开连接到SQL Server)(Microsoft SQL Server,错误:1326)

当我尝试在Visual Studio 2010中将数据库configuration为gridview时,会引发此错误。我不知道如何debugging此错误。

你将如何debugging这个错误? 除了错误信息中提到的那个之外,我应该采取哪些步骤来确定这里发生了什么?

我发现以下技巧有用:

  1. 确保您的数据库引擎已configuration为接受远程连接

    • 开始>所有程序> SQL Server 2005>configuration工具> SQL Server表面区域configuration
    • 单击“服务和连接的表面区域configuration”
    • select有问题的实例>数据库引擎>远程连接
    • 启用本地和远程连接
    • 重新启动实例
  2. 您可能需要在防火墙上为您正在使用的SQL Server实例和端口创build一个例外

    • 开始>运行> Firewall.cpl
    • 点击例外标签
    • 添加sqlservr.exe(通常位于C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin ,检查您的安装实际文件夹path)和端口(默认为1433
    • 检查你的连接string
    • 从FIX:错误:无法打开到SQL Server的连接 :
  3. 检查您的SQL服务器服务是否正常运行

    • 转到所有程序> Microsoft SQL Server 2008>configuration工具> SQL Serverconfigurationpipe理器> SQL Server服务
    • 检查以确保SQL Server服务状态正在运行。

    另外,请确保您的远程服务器在同一个networking中 。 运行sqlcmd -L以确定您的服务器是否包含在您的networking列表中。

  4. 在SQL Serverconfiguration中启用TCP / IP

    当两个或多个SQL Server通过networking连接时,它们使用TCP / IP进行所有通信。 SQL Server安装的默认端口是1433.可以通过SQL Serverconfigurationpipe理器更改此端口。 应该启用TCP / IP连接SQL Server。

    • 转到所有程序>> Microsoft SQL Server 2008 >>configuration工具>> SQL Serverconfigurationpipe理器>>selectTCP / IP
    • 右键点击TCP / IP >>点击启用

    您必须重新启动SQL Server服务才能使所有更改生效。 右键单击并转到菜单属性以select可以更改SQL Server的默认端口的位置。

我得到了解决scheme:

打开“SQL Serverconfigurationpipe理器”

现在点击“SQL Servernetworkingconfiguration”,然后点击“ 名称协议”

右键点击“TCP / IP”(确保启用)点击属性

现在select“IP地址”选项卡 – 并 – 转到最后一项“IP全部”

input“TCP端口”1433。

现在重新启动 “SQL Server名称”。 使用“services.msc”(winKey + r)

它会工作…

我正在通过打开服务来解决这个问题,然后开始运行Sql Server(Sqlexpress)服务。

服务图像

添加我的沉重的upvoted 评论作为答案与截图。

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

1)打开Sql Serverconfigurationpipe理器 – > SQL Servernetworkingconfiguration – > 协议(<(INSTANCE)> – > TCP / IP (双击它)。

在这里输入图像描述

2)select – > IP地址(选项卡)

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

在这里输入图像描述

4)按Win + R并inputservices.msc

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

在这里输入图像描述

之后,问题就解决了!

如果以上解决scheme都不起作用(没有任何工作对我来说),那么只需重新启动您的计算机,您将能够连接到您的SQL Server(本地主机)。

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

  1. 打开“运行”并inputservices.msc
  2. findSQL Server(实例名称)和SQL Server Browser的服务。 一次一个,右键单击,select“属性”,将path复制到exe文件
  3. 然后打开firewall.cpl ,单击允许应用程序或添加规则,添加以前复制的path(有一个过程,你需要遵循),检查域和私人,取消选中公共。

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

window + R (Run window Open)并在运行窗口中键入"services.msc"和新服务打开findSQL SERVER(SQLEXPRESS)服务启动,并再次尝试它为我工作希望其作品为您也。 在这里输入图像描述

做完这里提到的一切后,
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql- server-microsoft-sql-server-error /仍然没有为我工作。

步骤为我工作:

Start > Run > cmd > sqlcmd -L

它会提示你的服务器名称。 确保这个服务器名称与您正尝试连接到SQLpipe理工作室的CONNECT TO SERVER框中的服务器名称相同。

我犯了这个愚蠢的错误,我一直使用MSSQLSERVER而不是使用这个服务器名称。

希望这有助于像我这样犯傻的人。

谢谢。

尝试添加“\ SQLEXPRESS”到您的服务器名称

例如“我的服务器\ SQLEXPRESS”

在这里输入图像描述

我遇到了同样的问题,问题是我在解决scheme( WebDroid )中的几个项目,即使在Package Manager Consoleselect了Default project ,它使用Droid项目中的连接string:

 PM> update-database -Verbose Using StartUp project 'Droid'. <-- DROID Using NuGet project 'Web'. <-- WEB Specify the '-Verbose' flag to view the SQL statements being applied to the target database. <!-- BAD TARGET DATABASE --> Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention). System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) [REMOVED TEXT] ClientConnectionId:00000000-0000-0000-0000-000000000000 Error Number:-1,State:0,Class:20 A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) 

Startup Project设置为WebPackage Manger ConsoleDefault Project ,我得到它的工作。

我正在使用SQL Server 2016和Window 10。

在这里输入图像描述

首先是允许远程连接到SQL Server。 我所做的是在开始菜单键入sqlservermanager13.msc为了打开SQL Serverconfigurationpipe理器。 确保TCP / IP状态已启用。 在这里输入图像描述

双击TCP / IP协议名称检查您的TCP端口号。 通常默认是1433。

在这里输入图像描述

以下过程通过使用具有高级安全性的Windows防火墙Microsoftpipe理控制台(MMC)pipe理单元来configurationWindows防火墙。 高级安全Windows防火墙只configuration当前的configuration文件。

打开Windows防火墙中用于TCP访问的端口

  1. 在开始菜单上,单击运行,键入WF.msc,然后单击确定。
  2. 在具有高级安全性的Windows防火墙中,在左侧窗格中,右键单击入站规则,然后单击操作窗格中的新build规则。
  3. 在“规则types”对话框中,select“端口”,然后单击“下一步”。
  4. 在“协议和端口”对话框中,select“TCP”。 select“特定本地端口”,然后键入数据库引擎实例的端口号,例如1433作为默认实例。 点击下一步。
  5. 在“操作”对话框中,select“允许连接”,然后单击“下一步”。
  6. 在“configuration文件”对话框中,select要连接到数据库引擎时描述计算机连接环境的任何configuration文件,然后单击“下一步”。
  7. 在名称对话框中键入此规则的名称和说明,然后单击完成。

另一件事要configuration。

在使用dynamic端口时打开对SQL Server的访问

  1. 在开始菜单上,单击运行,键入WF.msc,然后单击确定。
  2. 在具有高级安全性的Windows防火墙中,在左侧窗格中,右键单击入站规则,然后单击操作窗格中的新build规则。
  3. 在“规则types”对话框中,select“程序”,然后单击“下一步”。
  4. 在程序对话框中,select这个程序path。 单击“浏览”,然后导航到要通过防火墙访问的SQL Server实例,然后单击“打开”。 默认情况下,SQL Server位于C:\ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe。 点击下一步。
  5. 在“操作”对话框中,select“允许连接”,然后单击“下一步”。
  6. 在“configuration文件”对话框中,select要连接到数据库引擎时描述计算机连接环境的任何configuration文件,然后单击“下一步”。
  7. 在名称对话框中键入此规则的名称和说明,然后单击完成。

看看微软的configurationWindows防火墙的数据库引擎访问

我必须将SQL Server Browser服务运行到SQL Serverconfigurationpipe理器中 。 没有这个,安装不能发现新创build的服务。

虽然上面的解决scheme应该在90%的情况下工作,但如果你仍然阅读这个答案! 您可能试图连接到不同于预期的服务器。 这可能是由于configuration文件指向的是与您尝试连接到的实际服务器不同的SQL服务器。

发生在我身上至less。

这个解决scheme也解决了networking错误和sql server背后的服务

我在这里回答了类似的问题,你需要stat另一个open Run type-> services.msc – 在services下 – > sort by stopped你会看到一堆停止的SQL服务Right click and start

开始 – 有4个问题可能导致常见的 LocalDb SqlExpress Sql Server连接错误 SQL Network Interfaces, error: 50 - Local Database Runtime error occurred之前,您需要将v11或v12重命名为(localdb)\ mssqllocaldb

  • 你没有运行服务
  • 这里没有configuration防火墙端口
  • 你的安装有问题/损坏(下面的步骤帮助你一个很好的干净的开始)
  • 您没有将V11或12重命名为mssqllocaldb

我发现最简单的就是做下面的事 – 我附上了图片和步骤的帮助。

首先validation您安装了哪个实例,可以通过检查registry 运行cmd来完成

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"如果此步骤失败,则可以使用选项d cmd> Sqllocaldb.exe d“someDb”
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png

您可以testing以下方法。

  • 一个

    1. 检查项目的连接string。
  • b

    1. 转到服务并重新启动SQLServer实例。
  • C

    1. 打开“SQLServerconfigurationpipe理器”
    2. 在左侧面板中select“SQLServernetworkingconfiguration”并展开它
    3. select“MSSQLServer的协议”
    4. 在右侧面板dbl中点击“TCP / IP”
    5. 在“协议”选项卡中,将“启用”设置为“是”
    6. 在“IP地址”选项卡中向下滚动
    7. 在“IPAll”中设置“TCP Port”为1433
  • d
    1. 打开“高级安全防火墙”
    2. 在右侧标签中select“入站规则”

在中间的选项卡中find“本地端口”为1433的logging,如果找不到则尝试使用以下级别创build它

  • 在开始菜单中,单击运行,键入“WF.msc”,然后单击确定
  • 在左侧面板中点击“具有高级安全性的Windows防火墙”
  • 在右侧面板中,右键单击“入站规则”,然后单击“新规则”
  • 在“规则types”对话框中,select“端口”,然后单击“下一步”
  • 在“协议和端口”对话框中,select“TCP”,然后select“特定本地端口”,然后键入端口号1433,单击“下一步”
  • 在“操作”对话框中,select“允许连接”,然后单击“下一步”
  • 在“configuration文件”对话框中,选中域,私有和公共,然后单击下一步
  • 在“名称”对话框中,键入“SQL 1433端口”并为自己的描述写入说明。 然后点击完成
  1. 然后在中间选项卡双击find的项目(实例)或创build“SQL 1433端口”名称的项目由你。
  2. 在打开的对话框中select“范围”选项卡(SQL Server属性)
  3. 在本地电脑中在您的浏览器中转到google.com并search“我的IP”。
  4. 然后复制你的“IP”
  5. 转到远程服务器,在“范围”选项卡的“SQL Server属性”对话框的“远程IP地址”中select“这些IP地址”选项,然后单击“添加”button
  6. 在打开的对话框(IP地址)中select“此IP地址或子网”选项并粘贴您的“IP”,单击确定button。

当您的sql服务器实例stopped时发生此错误。

转到所有程序> SQL Server>configuration工具> SQL SERVER CONFIGURATION MANAGER

然后点击SQL SERVER SERVICES,就会出现实例列表,select有问题的实例,点击顶部工具栏上的播放图标,希望这会有所帮助。

这个答案是非常晚的(但是比从未更好的迟到)

我从Windows 7上的工作笔记本电脑移到了Windows 10上的工作笔记本电脑上。我已经成功地在Windows 7上使用SSMS2016。

使用SSMS2012或SSMS2016应用相同的问题。 我对使用Windows身份validation的10台sql服务器的访问权限仍然相同。 我可以testing从另一台服务器。 但是, 10个服务器中的2个不能从我的笔记本电脑连接 。 这两个都是MS SQL SERVER 9,但我可以连接到其他SQL Server 9数据库。

解决scheme是添加防火墙规则 (使用具有高级安全性的Windows防火墙)。

为每个SSMS创build一个传入规则,例如C:\ Program Files(x86)\ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ Ssms.exe

我不是一个networking专家,所以我没有包括细节,但希望它会指出你在正确的方向。


错误消息(预防火墙规则)“build立到SQL Server的连接时发生networking相关或实例特定的错误。服务器未find或无法访问。请确认实例名称是否正确,并将SQL Serverconfiguration为允许远程连接(提供者:SQLnetworking接口,错误:26 – 错误定位服务器/实例指定)(.Net SqlClient数据提供者)“

如果您在生产环境中突然遇到这个错误,并且没有任何更改,请按以下顺序尝试以下4个项目,看看是否得到解决。

  1. 重新启动sql服务器服务。
  2. 重新启动服务(比如说IIS)调用到sql server中。 (如果服务调用开始到SQL服务器和最终得到响应错误之间的时间超短(大约一秒或两秒),那么问题可能就在这里。
  3. 重新启动服务器SQL Server处于打开状态。
  4. 重新启动呼叫服务所在的服务器。

MS SQL Server 2014在Windows 7中

1)去search程序并input(Sql server 2014configurationpipe理器)

2)然后点击左侧树形菜单中的“Sql server Service”

3)检查你的sql server服务状态实例(停止或运行)

4)如果是停止请改变状态运行并login你的SQL Serverpipe理工作室2014年

概要

要解决在运行本地应用程序和远程数据库时遇到的这个问题,请使用SQL Serverconfigurationpipe理器为远程数据库添加一个别名。

细节

我最近遇到这个问题时,从Windows 7转换到Windows 10笔记本电脑。 我正在运行一个本地开发和运行时环境访问远程服务器上的开发数据库。 我们通过SQL Server客户端networking实用程序(cliconfg.exe)通过服务器别名设置来访问开发数据库。 在确认在64位和32位版本的实用程序中正确设置了别名,并且可以通过SSMS从新笔记本电脑访问数据库服务器之后,我仍然得到了OP所看到的错误(不是OP的IP地址,课程)。

有必要使用SQL Serverconfigurationpipe理器为删除开发数据库服务器添加一个别名。 修正了事情。

在这里输入图像描述

我试着在这个问题上的所有其他答案,一些如果不是所有可能起到了一部分为我工作,但我仍然无法远程连接到数据库。 我在Azure虚拟机上使用SQL Server。

我最终记得VM有Azure帐户代理控制的端点,所以我继续到Azure门户并添加了1433作为可用端点,并且可以连接到我的SQL实例。

希望这可以帮助那些已经尝试过所有其他答案但仍然没有运气的人!

我通过设置使用Entity Framework作为启动项目的项目,然后运行“update-database”命令来解决这个问题。

如果在Visual Studio中debugging时遇到此问题,请确保项目构buildpath指向本地驱动器,或者按照以下步骤授予对networking文件夹的权限。

看来你的localdb实例没有运行。 要在计算机启动时启动它,请使用以下行添加到“开始”菜单\ Startup文件夹BAT文件中

 sqllocaldb start name_of_instance 

其中name_of_instance是要启动的localdb实例的名称。 您可以在命令行中使用sqllocaldb i列出可用的实例。

例如,如果您使用SQL Server Management Studio并连接到服务器名称(localdb)\v11.0 ,那么您的BAT文件将看起来像

 sqllocaldb start v11.0 

当我尝试将服务器从IIS Express更改为本地IIS时 (使用LocalDB时 ),我的问题就开始了。

在这里输入图像描述

我使用的是LocalDB(用于开发目的),当我从本地IIS恢复到IIS Express时,Visual Studio已将数据源从Data Source =(LocalDb)\ MSSQLLocalDB切换Data Source =。\ SQLEXPRESS

连接string不正确

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

正确的连接string

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

希望这可以帮助那里的人。

我的问题是,你需要有一个连接string入库和Web层。 一旦我将它添加到我的web.config 以及我的 app.config,entity framework能够创build迁移。

我的问题是,为什么web.config需要它,当那里完全没有数据库访问。

除了尝试Teo Chuen Wei Bryan所build议的一切外,还要确保连接string中正确的服务器/实例名称。

如果要在数据库服务器或web.config文件中使用主机名/实例的简短格式,请确保使用完全限定的域名(FQDN)/实例

此外,要testing从SQL服务器客户端不存在的服务器的连接,

– >创build一个文本文件,并将其文件扩展名改为.udl

– >右键单击该文件,您可以看到连接选项卡。

– >input服务器名称和login信息来testing与数据库服务器的连接。

希望这可以帮助。

当我在Visual Studio中遇到这个错误时,

“与SQL Serverbuild立连接时发生networking相关或实例特定的错误。 服务器未find或无法访问。 validation实例名称是否正确,并将SQL Serverconfiguration为允许远程连接。 (提供程序:命名pipe道提供程序,错误:40 – 无法打开连接到SQL Server)“

…正在执行下面的C#代码,这是试图获得我的SQL Server数据显示在网格中。 断点恰好在connect.Open()的行上发生:

  using (var connect = Connections.mySqlConnection) { const string query = "SELECT Name, Birthdate, Narrative FROM Friends"; using (var command = new SqlCommand(query, connect)) { connect.Open(); using (var dr = command.ExecuteReader()) { while (dr.Read()) { // blah } } } } 

这是莫名其妙的,因为SQL查询非常简单,我有正确的连接string,并且数据库服务器可用。 我决定在SQL Management Studio中自己手动运行实际的SQL查询,它运行的很好,并产生了几个logging。 但有一点在查询结果中显得很突出:Friends表中的varchar(max)types字段中存在一些不正确编码的HTML文本(具体来说,“Narrative”列中的一些编码注释符号<!--数据)。 可疑数据行如下所示:

 Name Birthdate Narrative ==== ========= ============== Fred 21-Oct-79 &lt;!--HTML Comment -->Once upon a time... 

注意编码的HTML符号“ &lt; ”,它代表“<”字符。 不知何故,它进入数据库的方式,我的C#代码无法拿起它! 它每次都失败connect.Open()线! 我手动编辑数据库表中的朋友一行数据,并把解码的“<”字符,而不是一切工作! 以下是该行的样子:

 Name Birthdate Narrative ==== ========= ============== Fred 21-Oct-79 <!--HTML Comment -->Once upon a time... 

我使用下面的这个简单的UPDATE语句编辑了一个坏行。 但是,如果您有多个违规的编码HTML行,则可能需要使用REPLACE函数的更详细的UPDATE语句:

 UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%' 

所以,故事的道理是(至less在我的情况下),在将HTML内容存储到数据库中之前先对其进行清理,并且不会首先得到这个神秘的SQL Server错误! (呃,如果你需要更多的信息,正确地清理/解码你的HTML内容是另一个值得单独的StackOverflowsearch讨论的主题!)

这个错误主要出现在SQL服务停止的时候。你需要重新启动服务。要进入这个窗口,你必须像这样search服务, 在这里输入图像描述

然后searchSQLSERVER(MSSQLSERVER)并重新启动服务。

在这里输入图像描述

希望这会工作。

为什么这个错误是如此烦人和嘈杂,只是因为它可能发生在不同的情况。

我已经在这里做了所有的事情,仍然被吸引。 所以请确保你在向下浏览之前完成了和我一样的工作。

也许我无法立即解决你的情况, 但我可以指出一个方向或想法 (最终在这里滑下的那个人)。 我已经开始思考我的运行程序错误发生后,我确保实例名称是明确的权利,并设置我的数据库以允许远程控制上述方法。 之后, 我怀疑在我的SQL连接的代码片段中发生了错误。

我的问题的解决scheme:

  • 检查我的sqlconnection函数

  • 点击查看其configuration

  • 新build一个连接

在这里输入图像描述

  • select你的服务器名称

在这里输入图像描述

它在思考连接过程中究竟发生了什么,对我来说很有效。希望我的思维会导致你杀死你的错误。