我正在尝试在运行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端口。
我也尝试了这些的所有组合,它们都会产生同样的错误。
以下是我在服务器上启用远程浏览所采取的步骤:
在Management Studio中,右键单击实例,转到“属性”,“安全性”,然后选中“SQL Server和Windows身份验证模式”。在连接选项卡上,我已选中“允许远程连接到此计算机”。
在SQL Server配置管理器中,我在它们出现的每个节点下启用了所有四个连接选项(共享内存,命名管道,TCPIP和Via)。在SQL Express的协议下,我尝试指定端口1433并将其保留为空,TCP动态端口设置为0(我认为这是为了启用动态端口)。
我为TCP端口1433,UDP端口1434以及sqlservr.exe
和sqlbrowser.exe
的程序例外创建了防火墙例外。
如果有人可以告诉我,我应该使用的连接字符串的四个版本的DataSource部分中的哪一个将是一个很大的帮助,即使它没有解决问题。这意味着我随后尝试的所有内容我只需要测试一次而不是四次。
提前感谢您的帮助!
答案 0 :(得分:1)
您在哪里输入防火墙例外,在您的计算机上,在服务器上,或两者都进入?
第二个连接字符串是唯一真正有效的字符串。你能通过端口1433 telnet到服务器吗?您是否可以远程连接到Management Studio中的实例,问题仅来自连接字符串所在的代码?您是否尝试在服务器上运行相同的代码?您是否尝试强制TCP / IP(与命名管道/共享内存等相对)将以下参数添加到连接字符串中:
Network=DBMSSOCN;
这个问题出现了很多,我确信你会遇到其他人之前遇到过的事情。你读过这篇文章“How to troubleshoot connecting to the SQL Server Database Engine”吗?根据{{3}},此处还有20多个问题提及此错误消息和Express。我建议您针对那些解决了其他用户问题的答案中的某些项目仔细检查您的设置。