我刚刚在我的家庭服务器上安装了SQL Server Express 2012。我试图从桌面PC的Visual Studio 2012连接到它,并反复得到众所周知的错误:
在建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确,SQL Server是否配置为允许远程连接。(提供商:Named Pipes提供商,错误:40 -无法打开到SQL Server的连接)
为了解决这个问题,我所做的是:
在服务器上运行“SQL Server配置管理器”,启用“SQL Server浏览器”
在服务器上为本地子网的TCP端口1433和1434添加Windows防火墙例外。
验证我在桌面上登录的用户在SQL Server实例上进行了登录。
验证我在SQL Server实例上使用Windows身份验证。
反复重启SQL Server和整个服务器。
把我的头发都拔出来。
如何让SQL Server 2012 Express允许远程连接!?
很高兴我问了。我最终找到的解决办法是:
如何配置SQL Server Express以允许端口1433上的远程tcp/ip连接?
运行SQL Server配置管理器。
进入“SQL Server网络配置> SQLEXPRESS协议”。
确保TCP/IP已启用。
到目前为止,一切顺利,完全在意料之中。但之后:
右键单击TCP/IP并选择属性。
验证在IP2下,IP地址被设置为计算机在本地子网上的IP地址。
向下滚动到IPAll。
确保“TCP动态端口”为空。(我的端口设置为5位数。)
确保“TCP端口”设置为“1433”。(我的是空白。)
(此外,如果您遵循这些步骤,就不需要启用SQL Server浏览器,只需要允许端口1433,而不是1434。)
这额外的五个步骤是我在以前版本的SQL Server、Express或其他版本中从未做过的。它们似乎是必要的,因为我在服务器上使用了一个命名实例(myservername\SQLEXPRESS),而不是默认实例。在这里看到的:
配置服务器监听特定的TCP端口(SQL Server配置管理器)