用于远程连接到SQL Server 2008的连接字符串

问题描述:

我试图远程连接到运行Windows Server 2008 R2的服务器上的SQL Server 2008 R2 Express。我收到以下错误:用于远程连接到SQL Server 2008的连接字符串

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: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)

我认为这个问题可能与我的连接字符串有关,因为我不确定它应该是什么。我理解的连接字符串应采取的形式:

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 

我也是在其他地方见过,你可以指定一个端口,所以我自己也尝试

​​

,因为据我所知,1433所使用的TCP端口SQL Server和

Data Source=123.123.123.123,1434\SQLEXPRESS 

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

我也试过这些的每一个组合,他们都给出了同样的错误。

这些都是我已在服务器上启用远程浏览的步骤:

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

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

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

如果有人能告诉我这四个版本,我应该使用这将是一个很大的帮助,即使它并没有解决问题的连接字符串的数据源部分组成。这意味着我随后尝试的所有事情,我只需要测试一次而不是四次。

在此先感谢您的帮助!

+0

你应该使用这个:Data Source = 123.123.123.123 \ SQLEXPRESS。如果您在本地尝试连接,连接是否正常工作? –

+0

如果您发布代码,XML或数据样本,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码样本”按钮(“{}”)以精确地格式化和语法突出显示它!如果您发布错误消息,请**使用blockquotes('“')来正确格式化错误消息。 –

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

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

Network=DBMSSOCN; 

这个问题来了不少,我敢肯定,你打的是什么别人之前已经打过。你有没有读过这篇文章,“How to troubleshoot connecting to the SQL Server Database Engine”?根据this search result,此处还有20多个问题提及此错误消息和Express。我建议根据那些解决了其他用户问题的答案中的一些项目,仔细检查您的设置。

+0

非常感谢您的建议和链接,以及澄清连接字符串。在本地使用Management Studio时,远程连接也失败了,我想我已经意识到问题出在哪里,虽然我在服务器防火墙中创建了例外,但服务器是由ISP托管的虚拟服务器,我认为这很可能是他们还需要打开TCP端口,如果这不是解决方案,我会回复,并且在查看您建议的链接后仍然无法找到它。再次感谢并向其他评论者致谢。 –