【问题标题】:Connection String for Remote Connections to SQL Server 2008SQL Server 2008 远程连接的连接字符串
【发布时间】:2011-08-26 02:51:40
【问题描述】:

我正在尝试远程连接到运行 Windows Server 2008 R2 的服务器上的 SQL Server 2008 R2 Express。我收到以下错误:

发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:TCP 提供程序,错误:0 - 连接尝试失败,因为已连接 当事人在一段时间后没有正确回应,或建立 连接失败,因为连接的主机没有响应。)

我认为问题可能与我的连接字符串有关,因为我不确定它到底应该是什么。我了解连接字符串应采用以下形式:

Data Source=123.123.123.123\InstanceName;Initial Catalog=MyDBName;user id=MyUserName;password=MyPassword;

我的 SQL Server 安装实例名称采用 ComputerName\SQLEXPRESS 形式。这是我在服务器上登录 Management Studio 时看到的。那么连接字符串是否应该以

开头
Data Source=123.123.123.123\ComputerName\SQLEXPRESS

这看起来不对,因为所有的斜线。我试图省略计算机名称:

Data Source=123.123.123.123\SQLEXPRESS

我也在某处看到你可以指定一个端口,所以我也尝试过

Data Source=123.123.123.123,1433\SQLEXPRESS

因为我知道 1433 是 SQL Server 使用的 TCP 端口,并且

Data Source=123.123.123.123,1434\SQLEXPRESS 

因为我知道 1434 是 SQL Server 浏览器使用的 UDP 端口。

我也尝试了这些的每一种组合,它们都给出了相同的错误。

这些是我在服务器上启用远程浏览所采取的步骤:

  1. 在 Management Studio 中,右键单击实例,转到属性、安全并检查 SQL Server 和 Windows 身份验证模式。在连接选项卡上,我选中了“允许远程连接到这台计算机”。

  2. 在 SQL Server 配置管理器中,我已在它们出现的每个节点下启用了所有四个连接选项(共享内存、命名管道、TCPIP 和通过)。在 SQL Express 协议下,我尝试指定端口 1433 并将其留空,并将 TCP 动态端口设置为 0(我认为这是为了启用动态端口)。

  3. 我为 TCP 端口 1433、UDP 端口 1434 创建了防火墙例外,并为 sqlservr.exesqlbrowser.exe 创建了程序例外。

如果有人能告诉我应该使用连接字符串的 DataSource 部分的四个版本中的哪一个,那将是一个很大的帮助,即使它没有解决问题。这意味着我随后尝试的所有内容都只需要测试一次而不是四次。

提前感谢您的帮助!

【问题讨论】:

  • 你应该使用这个:Data Source=123.123.123.123\SQLEXPRESS。如果您在本地尝试连接是否有效?
  • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行并单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它!如果您发布错误消息,使用块引号 (` " ` ) 正确格式化错误消息。

标签: sql-server-2008


【解决方案1】:

您在哪里输入了防火墙例外,是在您的机器上、服务器上还是两者兼有?

第二个连接字符串是唯一真正有效的。你能通过 1433 端口远程登录到服务器吗?您可以从 Management Studio 远程连接到实例吗?问题仅出在连接字符串所在的代码中吗?您是否尝试在服务器上运行相同的代码?您是否尝试强制 TCP/IP(与命名管道/共享内存等)将以下参数添加到您的连接字符串:

Network=DBMSSOCN;

这个问题出现了很多,我敢肯定你遇到了其他人之前遇到过的问题。你看过这篇文章“How to troubleshoot connecting to the SQL Server Database Engine”吗?根据this search result,这里还有 20 多个问题提到了这个错误消息和 Express。我建议根据那些为其他用户解决问题的答案中的某些项目仔细检查您的设置。

【讨论】:

  • 非常感谢您的建议和链接,也感谢您澄清连接字符串。该代码在本地工作,而远程连接也使用 Management Studio 失败。我想我已经意识到问题出在哪里了。虽然我在服务器防火墙中创建了例外,但服务器是由 ISP 托管的虚拟服务器。我认为他们很可能也需要打开 TCP 端口。如果这不是解决方案,我会回复,并且在查看您建议的链接后我仍然找不到它。再次感谢其他发表评论的人。
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多