我刚在家用服务器上安装了SQL Server Express 2012 . 我正在尝试从我的桌面PC从Visual Studio 2012连接到它,并反复得到众所周知的错误:
Build 与SQL Server的连接时发生与网络相关或特定于实例的错误 . 服务器未找到或无法访问 . 验证实例名称是否正确,以及SQL Server是否配置为允许远程连接 . (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
我试图解决这个问题:
-
在服务器上运行SQL Server配置管理器并启用SQL Server Browser
-
在服务器上为TCP,本地子网上的端口1433和1434添加Windows防火墙例外 .
-
验证我在桌面上登录的用户登录SQL Server实例 .
-
确认我在SQL Server实例上使用Windows身份验证 .
-
反复重启SQL Server和整个dang服务器 .
-
拔掉我所有的头发 .
How can I get SQL Server 2012 Express to allow remote connections!?
16 回答
这篇文章对我帮助...
How to enable remote connections in SQL Server
SQL Server中的所有内容都已配置,我的问题是防火墙阻塞了端口1433
我更喜欢“Rosdi Kasim”的方式,因为它不需要IP上的详细配置 .
当我再次尝试升级另一台服务器时,我肯定会再次忘记它 .
保持简单愚蠢(KISS)只需启用Sql Server Browser服务,然后在连接服务器时在IP后面添加\ SQLEXPRESS .
直接使用没有“\ SQLEXPRESS”的IP是我的失败点,因为它没有使用默认端口 .
谢谢 .
我必须通过Configuration Manager添加端口并在我的sql连接中添加端口号 [host][db instance name],1433
Note the , (comma) between instancename and port
我在SQL Server 2014本地安装的命名实例时遇到了同样的问题 . 使用
FQDN\InstanceName
进行连接会失败,而仅使用我的hostname\InstanceName
连接时会失败 . 例如:使用mycomputername\sql2014
连接工作,但使用mycomputername.mydomain.org\sql2014
没有 . DNS正确解析,在SQL配置管理器中启用了TCP / IP,添加了Windows防火墙规则(然后关闭防火墙进行测试以确保它没有阻止任何内容),但没有一个解决了这个问题 .最后,我必须在SQL Server上启动“ SQL Server Browser ”服务,并修复了连接问题 .
我从未意识到SQL Server Browser服务实际上帮助SQL Server Build 连接;我的印象是,当你单击“浏览更多”服务器进行连接时,它只是帮助填充下拉列表,但它实际上有助于将客户端请求与正确的端口#配合使用,如果没有明确分配端口#(类似的话)网站绑定如何帮助缓解托管多个网站的IIS Web服务器上的相同问题 .
这个连接项给了我关于SQL Server Browser服务的线索:https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-using-fqdn-machine-name
TechNet提供"SQL Server Browser"服务的原因(我强调):https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx
从“使用SQL Server浏览器”部分:
以及来自“SQL Server Browser如何工作”部分的同一篇文章中的更多信息:
在我的情况下,数据库在非标准端口上运行 . 检查您连接的端口是否与运行数据库的端口相同 . 如果有更多SQL Server实例,请检查正确的实例 .
连接到远程SQL Server(无需打开UDP端口1434和启用SQL Server Browser)的正确方法是使用 ip and port 而不是 named instance .
使用ip和port而不是命名实例也更安全,因为它减少了攻击面积 .
也许2张照片说2000字......
This method uses the specified port (this is what most people want I believe)..
This method requires opening UDP port 1434 and SQL Server Browser running..
我不得不添加防火墙入站端口规则来打开UDP端口1434.这是一个Sql Server Browser监听 .
在我安装的SQL Server 2012 Developer Edition上,安装了默认设置,我只需要加载SQL Server配置管理器 - > SQL Server网络配置 - > MSSQLSERVER协议,并将TCP / IP从禁用更改为启用 .
您需要做的就是打开服务器防火墙上的相关端口 .
One More Thing...
Kyralessa提供了很好的信息,但我还有另外一件事要补充,即使在这篇文章之后我也难以接受 .
在“SQL Server网络配置”>“服务器协议”>“TCP / IP已启用”下 . 右键单击TCP / IP并选择属性 . 在IP地址下,您需要为正在使用的每种连接类型将“已启用”设置为“是” .
好吧,glad I asked . 我最终发现的解决方案是:
How do I configure SQL Server Express to allow remote tcp/ip connections on port 1433?
运行SQL Server配置管理器 .
转到SQL Server网络配置> SQLEXPRESS的协议 .
确保已启用TCP / IP .
到目前为止,这么好,完全是预期的 . 但是之后:
右键单击TCP / IP并选择 Properties .
确认在IP2下,IP地址设置为本地子网上计算机的IP地址 .
向下滚动到IPAll .
确保 TCP Dynamic Ports 是 blank . (我的设置为5位数的端口号 . )
确保 TCP Port 设置为 1433 . (我的空白 . )
(另外,如果您按照这些步骤操作,则无需启用SQL Server Browser,您只需要允许端口1433,而不是1434 . )
这些额外的五个步骤是我在以前版本的SQL Server,Express或其他版本中不记得曾经做过的事情 . 它们似乎是必要的,因为我在服务器上使用命名实例(myservername \ SQLEXPRESS)而不是默认实例 . 看这里:
Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager)
您可以使用它来解决此问题:
转到START> EXECUTE,然后运行 CLICONFG.EXE.
命名管道协议将首先在列表中 . 远程,并促进TCP / IP .
彻底测试应用程序 .
我希望这有帮助 .
要检查的另一件事是你正确地拼写了命名实例!
本文非常有助于解决连接问题:How to Troubleshoot Connecting to the SQL Server Database Engine
I had a different problem from what all of the answers so far mentioned!
我应该首先说我在Visual Studio中使用它,而不是SQL Server Express,但解决方案应该完全相同 .
嗯,上帝,它实际上非常简单,也许有点愚蠢 . 当我尝试创建一个数据库并且Visual Studio建议了SQL Server的名称时,它给了我我的Windows用户名,因为它实际上是我为它服务的服务器的名称 .
实际上它实际上是我的Windows用户名
\SQLEXPRESS
. 如果你没有工作,也许这个名字是不同的 .如果像我一样,您只在Visual Studio中遇到此问题以检查您的内容,请按照以下步骤操作:
打开SQL Server Management Studioicon .
如果您没有看到服务器(默认停靠在左侧),请按F8或转到 View -> Object Explorer .
右键单击服务器名称,然后选择 Properties (最后一项)
在左下方,您可以在“ Server ”下看到服务器的实际名称(不是连接,但在它上面) .
这是服务器的名称,这是您应该尝试连接的名称!不是Visual Studio建议的!
你也可以设置
在协议对话框中,然后在IP地址IP1(说)
我最近遇到了这个问题 . 2015 Aug
打开 SQL Server Configuration Manager 解决
SQL Server网络配置 - > SQLEXPRESS的协议
TCP / IP上的属性 - > IP地址选项卡
一切都保持默认,只设置IPALL:TCP端口为 1433
可以用 SQL Server Manager 连接到机器:[hostaddress],1433
例: