如何解决SQLServer2008数据引擎连接问题
创始人
2024-12-24 05:22:55
0次

当 SQL Server 数据库引擎实例未运行、服务器名称键入错误或者存在网络问题或防火墙时,通常会发生“超时时间已到”错误。

错误文本

在 SQL Server Management Studio 中,此错误显示为:

“无法连接到 <服务器名>。”

“超时时间已到。在操作完成之前超时时间已过或服务器未响应。(Microsoft SQL Server,错误: -2)”

在 sqlcmd中,可能出现的超时错误包括:

“SQL 网络接口: 定位指定的服务器/实例时出错”

“Sqlcmd: 错误: Microsoft SQL Server NativeClient : 客户端无法建立连接。”

“Sqlcmd: 错误: Microsoft SQL Server NativeClient : 登录超时时间已到。”

“无法与 SQL Server 建立连接”

“建立与服务器的连接时出错。当连接到 SQL Server 时,此故障可能会因为 SQL Server 在默认设置下不允许进行远程连接而引发的。”

此错误的常见原因

原因

解决方法

键入的服务器名称不正确。

使用正确的服务器名称,然后重试。

服务器中的 SQL Server 服务未运行。

启动 SQL Server 数据库引擎实例。

数据库引擎实例的 TCP/IP 端口被防火墙阻塞。

将防火墙配置为允许访问数据库引擎。

数据库引擎由于已被更改或者不是默认实例而不侦听端口 1433,并且没有运行 SQL Server Browser 服务。

要么启动 SQL Server Browser 服务,要么指定 TCP/IP 端口号进行连接。

SQL Server Browser 服务正在运行,但 UDP 端口 1434 被防火墙阻塞。

将防火墙配置为允许访问服务器上的 UDP 端口 1434,或者连接指定 TCP/IP 端口号。

客户端和服务器未配置为使用相同的网络协议。

使用 SQL Server 配置管理器,确认服务器和客户端计算机至少有一个通用的启用协议。

网络无法将服务器名称解析为 IP 地址。可使用 PING 程序对此进行测试。

修复网络上的计算机名称解析问题,或者使用服务器的 IP 地址连接。这不是 SQL Server 问题。有关帮助,请参阅 Windows 文档或与网络管理员联系。

无法使用 IP 地址连接到网络。可使用 PING 程序对此进行测试。

修复网络上的 TCP/IP 问题。这不是 SQL Server 问题。有关帮助,请参阅 Windows 文档或与网络管理员联系。

不常见错误

多个服务器 IP 地址

在连接到群集或具有多个 IP 地址的非群集计算机上安装的 SQL Server 命名实例时,Windows Vista 或 Windows Server 2008 上的客户端可能会收到此错误。所有 SQL Server 版本都可能会出现这种问题。

原因

在连接到远程计算机上的命名实例时,客户端使用用户数据报协议 (UDP) 连接到 SQL Server 计算机或群集上的 SQL Server Browser 服务以获取连接端点(TCP 端口号或命名管道)。

WindowsVista 或 Windows Server 2008 客户端上的防火墙不允许对 UDP 进行松散源映射。即,响应必须是从所查询的相同 IP 地址中返回的。如果响应不是从最初针对的 IP 地址中返回的,客户端防火墙将删除数据包。在尝试连接到群集服务器或具有多个 IP 地址的非群集服务器计算机时,可能会出现这种问题。

下表介绍可导致 UDP 数据包被删除的操作系统组合。这可以阻止连接到 SQL Server 的命名实例或未在 TCP 端口 1433 上侦听的 SQL Server 默认实例。

客户端操作系统

运行 SQL Server 的操作系统

SQL Server 2008 结果

SQL Server 2005 结果

Windows XP 或 Windows Server 2003

Windows XP 或 Windows Server 2003

UDP 数据包未被删除。

UDP 数据包未被删除。

Windows XP 或 Windows Server 2003

Windows Vista 或 Windows Server 2003

UDP 数据包未被删除。

UDP 数据包未被删除。

Windows Vista 或 Windows Server 2008

Windows XP 或 Windows Server 2003

UDP 数据包被删除。无法连接。

UDP 数据包被删除。无法连接。

Windows Vista 或 Windows Server 2008

Windows Vista 或 Windows Server 2008(x86、IA64)

UDP 数据包未被删除。

UDP 数据包被删除。无法连接。

Windows Vista 或 Windows Server 2008

Windows Vista 或 Windows Server 2008 (x64)

UDP 数据包被删除。无法连接。

UDP 数据包被删除。无法连接。

解决方法

若要解决此问题,请执行以下操作之一:

·        在连接字符串中,将 TCP 端口号或命名管道名称指定为服务器名称的一部分。

·        在客户端计算机上具有高级安全功能的 Windows 防火墙中创建例外。

注意:

如果在防火墙中创建例外,可能会使计算机或网络更容易受到恶意用户或恶意软件(如病毒)的攻击。建议您不要使用这种解决方法,此处提供该信息的目的是,如果没有切实可行的替代方法,您可以自行决定是否采用这种解决方法。

·        例外可以是以下任一情况:

·        为连接到 SQL Server 的应用程序添加例外规则。

·        添加一个入站规则,以允许来自 SQL Server 计算机或群集的所有可能的 IP 地址的通信。

强行关闭的连接

使用 TCP/IP 连接到SQL Server 时,可能会出现此错误。

错误文本

该错误出现时可能具有以下格式:

·        TCP_PROV: 现有连接被远程主机强行关闭。

·        访问接口编号: 7,错误: 10054,错误消息:“TCP 访问接口: 现有连接已被远程主机强行关闭…”

·        未处理的异常: 在向服务器发送请求时发生传输级错误。(访问接口: TCP 访问接口,错误: 0 - 现有连接已被远程主机强行关闭。)

此错误的常见原因

下表列出了此错误的常见原因和解决方法。

原因

解决方法

客户端已与不支持的 SQL Server Native Client 版本连接。

将客户端计算机更新为 SQL Server Native Client 的服务器版本。

发生故障的网络硬件正在删除部分 TCP 通信。

使用网络监视程序分析 TCP SYN、ACK 和 FIN 消息。

SynAttackProtect设置可能正在删除连接。

请参阅后面的“在 Windows Server 2003 SP1 上运行时,连接可能被强行关闭”部分。

在 Windows Server2003 SP1 上运行时,连接可能被强行关闭

当使用大量到 Windows Server 2003 ServicePack 1 上运行的 SQL Server 数据库引擎实例的客户端连接尝试测试可伸缩性时,如果请求到达的速度快于 SQL Server 提供的连接速度,则 Windows 可能会删除这些连接。这是 Windows Server 2003 Service Pack 1 的一项安全功能,可实现有限的传入 TCP 连接请求队列。

若要解决此问题,请使用 regedit.exe 实用工具添加以下注册表项:

项

类型

名称

值

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\

DWORD

SynAttackProtect

00000000

安全说明:

设置此注册表项可能会使服务器面临 SYN 泛滥和拒绝服务攻击的威胁。只有在必要并且了解这些安全风险的情况下,才可以添加此注册表值。完成测试后,请删除此注册表值

在管道的另一端没有进程

连接到 SQL Server 的客户端如果在 SQL Server 上未启用命名管道支持时连接到该服务器(即使可以使用其他协议,如TCP/IP),可能会遇到此命名管道错误。

如果服务器上未启用命名管道,则拒绝客户端试图使用命名管道进行连接。以下两种情况下会出现此错误:

·        客户端试图只使用命名管道进行连接,而服务器上未启用命名管道协议。

·        客户端试图使用任何可用的协议进行连接,但在客户端协议顺序中,named pipes 列在 TCP 之前。

错误文本

named pipes 提供程序:在管道的另一端没有进程。

Microsoft SQL Server Native Client:通信链接失败。

Microsoft SQL Server NativeClient:在与服务器建立连接时出现错误。当连接到 SQL Server 时,此故障可能是因为 SQL Server 在默认设置下不允许进行远程连接而引发的。

此错误的常见原因

原因

解决方法

客户端试图使用 named pipes 进行连接,而服务器没有配置为允许使用 named pipes 进行远程连接。

使用 TCP/IP 进行连接,或使用 SQL Server 配置管理器通过 named pipes 进行远程连接。

客户端协议顺序是在尝试 TCP 协议之前试图使用 named pipes 协议进行连接,而服务器上未启用 named pipes。

在客户端计算机上使用 SQL Server 配置管理器,在协议顺序列表中将 TCP 移动到 Named Pipes 之前。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...