有时无法建立与 SQL Server 的连接

Posted

技术标签:

【中文标题】有时无法建立与 SQL Server 的连接【英文标题】:Sometimes can't establish connection to SQL Server 【发布时间】:2017-04-21 13:01:53 【问题描述】:

我们在 Microsoft Access 2000 中有一个应用程序(抱歉,没办法),连接到 SQL Server 2008 R2 Express,它没有任何连接问题。我们的应用程序使用一个 .NET ActiveX 控件,它必须连接到同一个 SQL Server。有时它有效,有时则无效。如果没有,我会收到以下错误消息:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误 26:-错误定位服务器/指定的实例)

这似乎与防火墙有关。当我关闭运行 SQL Server 的服务器上的 Windows 防火墙时,仅针对“域网络设置”,然后立即再次打开,问题解决了一段时间(几个小时)。

【问题讨论】:

【参考方案1】:

系统管理员似乎找到了答案。他检查了防火墙日志文件,发现端口号 1434 被 UDP 协议阻止,所以他不得不在防火墙设置中打开它。

端口 1434 由 SQL Browser 服务使用,它允许连接到使用动态端口的 SQL Server 的命名实例,而不必知道每个命名实例正在使用哪个端口,特别是因为这可能会在命名实例的重新启动之间发生变化。 [link]

【讨论】:

【参考方案2】:

如果您在家工作(例如本地 Windows 7、8.1、10 计算机),并尝试连接到远程数据库(通过 SQL Server 数据库引擎,使用 SSMS),那么以下内容很可能是您想要的。 .

转到 Windows 防火墙: 首先,新建OUTBOUND规则,选择“端口”,“允许”TCP 端口 1433。 然后,创建一个新的 OUTBOUND 规则,选择“端口”,并“允许”UDP 端口 1434。 最后,找到您的 SSMS 的路径。 (例如,右键单击 SSMS 快捷方式,转到属性,找到“目标”路径,然后复制它。 然后,创建一个新的 OUTBOUND 规则,选择程序,粘贴到您复制的路径中,并允许它。

就是这样。

注意:如果您实际上是在物理服务器或托管数据库的虚拟机上,则应遵循相同的步骤,但改为创建 INBOUND 规则。

希望这会有所帮助,它对我有所帮助。 :-)

【讨论】:

以上是关于有时无法建立与 SQL Server 的连接的主要内容,如果未能解决你的问题,请参考以下文章

C#与SQL Server建立连接出错

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。

驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

sql server 2008 在与 SQL Server 提示建立连接时出现与网络相关的或特定于实例的错误

驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接