为什么我会收到"无法连接到服务器 - 与网络相关或特定于实例的错误"?

Sas*_*ree 354 sql-server azure visual-studio azure-virtual-machine

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

无法连接到108.163.224.173.

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.

服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.

(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)(Microsoft SQL Server,错误:1326)

当我尝试在Visual Studio 2010中将我的数据库配置为gridview时抛出此错误.我对如何调试此错误感到茫然.

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

Teo*_*yan 291

我发现以下技术很有用:

  1. 确保您的数据库引擎配置为接受远程连接:

    • 开始>所有程序> SQL Server 2005>配置工具> SQL Server外围应用配置
    • 单击"服务和连接的表面区域配置"
    • 选择出现问题的实例>数据库引擎>远程连接
    • 启用本地和远程连接
    • 重启实例
  2. 您可能需要在防火墙上为您正在使用的SQL Server实例和端口创建一个例外:

    • 开始>运行> Firewall.cpl
    • 单击例外选项卡
    • 添加sqlservr.exe(通常位于C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin,检查实际文件夹路径的安装)和端口(默认为1433)
    • 检查您的连接字符串
  3. 检查您的SQL Server服务是否已启动并正常运行:

    • 转到所有程序> Microsoft SQL Server 2008>配置工具> SQL Server配置管理器> SQL Server服务
    • 检查以确保SQL Server服务状态为"正在运行".

    此外,请确保您的远程服务器位于同一网络中.运行sqlcmd -L以确定您的服务器是否包含在网络列表中.

  4. 在SQL Server配置中启用TCP/IP

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

    • 转到所有程序>> Microsoft SQL Server 2008 >>配置工具>> SQL Server配置管理器>>选择TCP/IP
    • 右键单击TCP/IP >>单击"启用"

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

  • 今天我花了很多时间在这上面,最后对我有用的是:**打开Sql Server配置管理器** - >**协议<INSTANCE>** - >**TCP/IP** - >**IP地址(标签)**.转到最后一个条目**IP All**并提及**TCP Port 1433**.现在使用**services.msc**重新启动**SQL Server(<INSTANCE>)**.在此之后,问题得到了解决! (70认同)
  • 另外*记住*来"启用SQL Server Browser"服务.在我的时间设置了许多SQL服务器......然而这一步似乎总是涉及不同的场景:) (13认同)
  • 在SQL Server中启用TCP/IP在使用SQL Server 2014 Express时,配置是我的解决方案. (10认同)
  • 我也有同样的问题,登录到sql server发现mssqlserer服务已经停止,启动它.能够立即连接到实例 (4认同)

Irs*_*han 112

我找到了解决方案:

打开"SQL Server配置管理器"

现在单击"SQL Server网络配置"并单击" 名称的协议"

右键单击"TCP/IP"(确保它已启用)单击"属性"

现在选择"IP地址"选项卡 - 并且 - 转到最后一个条目"IP All"

输入"TCP端口"1433.

现在 重新启动 "SQL Server .Name".使用"services.msc"(winKey + r)

它会工作......

  • 复制粘贴我的[评论](http://stackoverflow.com/questions/18060667/why-am-i-getting-cannot-connect-to-server-a-network-related-or-instance-speci/38641107#comment45684188_18060818 )(发布于2015年2月24日 - 发布前7个月)作为答案,不给我积分!:P (61认同)
  • 在SQL Server 2014中使用(localdb)\ mssqllocaldb而不是(localdb)\ v11.0 (3认同)
  • 这很有效.我无法连接到SQL Server 2016.进行了这些更改,它工作正常!谢谢. (2认同)
  • 这个对我有用。在配置管理器中启用 TCP/IP 和命名管道后,只需启动“service.msc”中的服务。 (2认同)

use*_*087 94

添加我大量赞成的评论作为截图的答案.

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

1)打开Sql Server配置管理器 - > SQL Server网络配置 - > 协议<(实例)> - > TCP/IP(双击它).

在此输入图像描述

2)选择 - > IP地址(Tab).

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

在此输入图像描述

4)按,Win+R然后输入services.msc.

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

在此输入图像描述

在此之后,问题得到了解决!

  • 这是简单而具体的解决方案 (2认同)
  • 是的,设置端口号 1433 就可以了,默认情况下似乎是空的 (2认同)

Ani*_*aha 78

我通过打开服务然后开始运行Sql Server(Sqlexpress)服务来解决该问题.

服务形象

  • 我已经看到SQL Server Windows服务设置为手动启动类型的位置,因此它在重新启动时没有重新启动.它应该设置为自动. (3认同)
  • 这正是我做的,我的状态是运行和StartupType是自动的,但我仍然遇到问题,所以我使用运行窗口类型`services.msc`的服务然后我右键单击SQL Server(SQL EXPRESS)的上下文菜单和**只需停止并再次启动服务**并为我工作正常,希望有所帮助. (2认同)

Deb*_*ash 20

此错误主要发生在SQL服务停止时.您需要重新启动服务.要转到此窗口,您必须搜索此类服务 - 在此输入图像描述

然后搜索SQLSERVER(MSSQLSERVER)并重新启动该服务.

在此输入图像描述

希望这会奏效.


Haf*_*sad 14

按下window + R (Run window Open)并在运行窗口类型"services.msc"和新服务打开查找SQL SERVER(SQLEXPRESS)服务开始,然后再次尝试它对我有用希望它的工作也适合你.在此输入图像描述

  • 哥们面临同样的问题,但我不知道热门服务窗口,然后我找到了一种方式,我想与人分享 (7认同)
  • 之前已经给出了答案。没有任何理由再次发布 (2认同)

Abd*_*res 13

我想你正在使用Express Edition

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

例如 "MY-SERVER\SQLEXPRESS"

在此输入图像描述


tra*_*mer 12

该解决方案解决了这两个问题 Network Errorservice背后的SQL服务器

我在这里回答了一个类似的问题,你需要统计其他open Run type-> services.msc- 在服务 ->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


Troubleshooting Steps
Run Code Online (Sandbox Code Playgroud)
  1. 您没有运行此 cmd服务 ,或者net start MSSQLSERVERnet start MSSQL$ instancename
  2. 您没有在此处 配置 防火墙端口 在此处输入图片说明
  3. 您的安装有问题/损坏(以下步骤可帮助您轻松开始)
  4. 您没有将 V11 或 12 重命名为 mssqllocaldb/SqlServer

我发现最简单的方法是执行以下操作 - 我已附上图片和步骤以寻求帮助。


Resolution Steps:
Run Code Online (Sandbox Code Playgroud)

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

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

重新启动MSSql Server或只需重新启动您的机器!

  • 按住/按下打开CMD,window + R然后输入“services.msc”

  • 现在寻找 sql server 服务,打开 find SQL SERVER with instance name 然后ReStart这个服务再试一次

SqlLOCALDb_edited.png


Nut*_*ker 11

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

  1. 打开"运行"并输入 services.msc
  2. 查找SQL Server(实例名称)和SQL Server Browser的服务.一次一个,右键单击,选择"属性",将路径复制到exe文件
  3. 然后打开firewall.cpl,单击允许应用程序或添加规则,添加以前复制的路径(您需要遵循的过程),选中域和专用,取消选中公共.

这是YouTube链接,您可以在其中看到此过程:允许SQL Server通过Windows防火墙


小智 10

我遇到了同样的问题在我的情况下,我是这样解决的

步骤 1:从开始菜单转到 SQL 服务器配置管理器

步骤 2:启用 TCP/IP

在此处输入图片说明

第 3 步:双击 TCP/IP 并转到 IP Address last entry IP ALL 并输入 TCP Port 1433 然后应用

在此处输入图片说明

第 4 步:然后按 win+r 并写入 services.msc 打开服务然后向下滚动然后右键单击 SQL Server (MSSQLSERVER) 选择重新启动

在此处输入图片说明

那解决了我的问题。即使执行上述所有步骤都不能解决问题,只需重新启动 PC,然后希望它会起作用。


Eug*_*nic 9

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

  • 为什么这里的每个人都假设它是本地数据库??? (2认同)

Den*_*enn 8

做完这里提到的所有事情之后:
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-连接到sql-server-microsoft-sql-server-error / 仍然无法正常工作.

步骤对我有用:

Start > Run > cmd > sqlcmd -L

它会提示您输入服务器名称.确保此服务器名称与您尝试连接到SQL Management Studio的CONNECT TO SERVER框中的服务器名称相同.

我犯了这个愚蠢的错误,我继续MSSQLSERVER使用这个服务器名称.

希望这对像我这样犯愚蠢错误的人有所帮助.

谢谢.


Moh*_*ori 8

您可以测试以下方法。

  • 一种

    1. 检查项目的连接字符串。
    1. 转到服务并重新启动 SQLServer 实例。
  • C

    1. 打开“SQLServer 配置管理器”
    2. 在左侧面板中选择“SQLServer 网络配置”并展开它
    3. 选择“MSSQLServer 的协议”
    4. 在右侧面板 dbl 单击“TCP/IP”
    5. 在“协议”选项卡中,将“启用”设置为“是”
    6. 在“IP 地址”选项卡中向下滚动
    7. 在“IPAll”中将“TCP 端口”设置为 1433
  • d
    1. 打开“具有高级安全性的防火墙”
    2. 在右侧选项卡中选择“入站规则”

在中间选项卡中找到“本地端口”为 1433 的记录,如果找不到,请尝试使用以下级别创建它

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


Joh*_*ohn 6

我尝试了关于这个问题的所有其他答案,有些(如果不是全部)可能在让这个为我工作方面发挥了作用,但我仍然无法远程连接到数据库。我在 Azure VM 上使用 SQL Server。

我最终记得 VM 具有由 Azure 帐户代理控制的端点,因此我继续访问 Azure 门户并添加 1433 作为可用端点,这样我就可以连接到我的 SQL 实例。

希望这对尝试了所有其他答案但仍然没有运气的人有所帮助!


Fre*_*red 6

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

在此输入图像描述

首先是允许远程连接到SQL Server.我所做的是在开始菜单中键入sqlservermanager13.msc以打开SQL Server配置管理器.确保已启用TCP/IP状态. 在此输入图像描述

双击TCP/IP协议名称检查TCP端口号.通常默认为1433.

在此输入图像描述

以下过程使用具有高级安全性的Windows防火墙Microsoft管理控制台(MMC)管理单元配置Windows防火墙.具有高级安全性的Windows防火墙仅配置当前配置文件.

在Windows防火墙中打开端口以进行TCP访问

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

配置的另一件事.

使用动态端口时打开对SQL Server的访问

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

查看Microsoft doucmentation 为数据库引擎访问配置Windows防火墙


Mar*_*tur 5

我必须将SQL Server Browser服务运行到SQL Server Configuration Manager 中。没有这个,安装就无法发现新创建的服务。

  • 请注意,在您的命令之后,这会导致本地计算机上的服务器名称开始 &gt; 运行 &gt; cmd &gt; sqlcmd -L (2认同)

Jef*_*ito 5

我遇到了同样的问题,问题是我在解决方案(WebDroid)中有几个项目,即使Default projectPackage Manager Console它使用Droid项目中的连接字符串中选择:

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)
Run Code Online (Sandbox Code Playgroud)

设置Startup ProjecttoWebDefault Projectin 后,Package Manger Console我开始工作了。


小智 5

您可以检查 MS SQL Server 2014 的服务状态。在 Windows 7 中,您可以通过以下方式进行:

  1. 转到搜索并键入“SQL Server 2014 配置管理器
  2. 然后单击左侧菜单中的“SQL Server 服务”
  3. 检查 SQL Server 服务实例是否已停止或正在运行
  4. 如果已停止,请将状态更改为正在运行并登录 SQL Server Management Studio 2014


归档时间:

查看次数:

1341810 次

最近记录:

6 年 前