第一次尝试 SQL Server 超时

Ser*_*ioL 10 networking sql-server-2008

我遇到了一个奇怪的问题,我尝试通过 Visual Studio 中的数据源或通过 SQL 管理控制台本身连接到在第二台计算机上运行的 SQL Server 2008(两台计算机都运行 Win7 64 位)。

第一次尝试连接时,它超时。第二次尝试工作正常。

我可以毫无困难地访问第二台计算机上的共享,这似乎是我第一次尝试为每个应用程序实例连接到 SQL。也就是说,如果我打开两个 Visual Studio 实例,它们在第一次尝试连接时都会失败,但在第二次尝试连接时会成功。我必须为每个实例连接两次(无论任何其他应用程序中的失败/成功顺序如何)。

我希望这是有道理的。

有什么建议吗?

小智 7

我想我找到了解决方案,至少在我的情况下它是有效的。我正在使用实例名称,这自动暗示了 sql server 服务的动态端口。我已将设置从动态更改为修复端口,然后在该端口上打开防火墙。

SQL Server 配置管理器 --> SQL Server 网络配置 --> 'InstanceName' 的协议 --> TCP/IP --> 属性 --> IP 地址 --> IP All -->

在这里您会看到两个选项:

  • TCP 动态端口:51250(随机生成)
  • TCP 端口:空 - 我放在这里 1433 然后我打开了防火墙(以防它尚未打开)。你可以放任何你想要的端口(我放 1433 因为它是唯一的实例。如果有多个实例,你应该为每个实例选择一个不同的端口,然后在防火墙中打开它们)

该脚本用于简化您打开我从 MS 下载的端口的任务,我在此处复制它(评论是德语,但应该很明显):

@echo =========  Ports des SQL-Servers  ===================
@echo Aktivieren von Port 1433 für die SQLServer-Standardinstanz
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Aktivieren von Port 1434 für dedizierte Administratorverbindungen
netsh firewall set portopening TCP 1434 "SQL-Administratorverbindung" 
@echo Aktivieren von Port 4022 für den konventionellen SQL Server-Service Broker  
netsh firewall set portopening TCP 4022 "SQL-Service Broker" 
@echo Aktivieren von Port 135 für Transact-SQL-Debugger/RPC 
netsh firewall set portopening TCP 135 "SQL-Debugger/RPC" 
@echo =========  Ports für Analysedienste  ==============
@echo Aktivieren von Port 2383 für die SSAS-Standardinstanz
netsh firewall set portopening TCP 2383 "Analysedienste" 
@echo Aktivieren von Port 2382 für den SQL Server-Browserdienst
netsh firewall set portopening TCP 2382 "SQL-Browser" 
@echo =========  Verschiedene Anwendungen  ==============
@echo Aktivieren von Port 80 für HTTP 
netsh firewall set portopening TCP 80 "HTTP" 
@echo Aktivieren von Port 443 für SSL
netsh firewall set portopening TCP 443 "SSL" 
@echo Aktivieren des Ports für die Schaltfläche 'Durchsuchen' des SQL Server-Browserdiensts
netsh firewall set portopening UDP 1434 "SQL-Browser" 
@echo Zulassen von Multicast-/Broadcastantwort auf UDP (Aufzählung der Browserdienste OK)
netsh firewall set multicastbroadcastresponse ENABLE
Run Code Online (Sandbox Code Playgroud)