첫 번째 시도에서 SQL Server 시간 초과


9

Visual Studio의 데이터 소스 또는 SQL 관리 콘솔 자체를 통해 두 번째 컴퓨터 (Win7 64 비트를 실행하는 컴퓨터 모두)에서 실행되는 SQL Server 2008에 연결하려고하는 이상한 문제가 있습니다.

처음 연결을 시도하면 시간이 초과됩니다. 두 번째 시도는 잘 작동합니다.

어려움없이 두 번째 컴퓨터의 공유에 액세스 할 수 있습니다. 각 응용 프로그램 인스턴스에 대해 SQL에 처음 연결하려고 시도한 것 같습니다. 즉, 두 개의 Visual Studio 인스턴스를 열면 둘 다 첫 번째 연결 시도에서 실패하지만 두 번째 인스턴스에서는 성공합니다. 다른 응용 프로그램의 실패 / 성공 순서에 관계없이 각 인스턴스마다 두 번 연결해야합니다.

나는 그것이 의미가 있기를 바랍니다.

어떤 충고?


다른 컴퓨터에 연결하기 위해 어떤 이름 지정 방법을 사용하고 있습니까, IP 주소 (예 : 192.168.1.1) 또는 MySqlServer와 같은 이름을 사용하고 있습니까? 이것이 이름 확인 문제라고 생각되면 호스트 파일에 Sql 서버의 이름을 넣어 문제를 사라지게 할 수 있습니다.
코딩 고릴라

컴퓨터 이름으로, 그러나 그것은 내 홈 네트워크에 있으며 컴퓨터 이름을 사용하여 공유를 할 수 있습니다. 나에게 문제를주는 것은 단지 SQL 일뿐입니다.
SergioL

답변:


6

적어도 내 경우에는 효과가 있다고 생각합니다. 인스턴스 이름을 사용하고 있으며 이는 SQL Server 서비스에 대한 동적 포트를 자동으로 암시합니다. 설정을 동적에서 수정 포트로 변경 한 다음 해당 포트에서 방화벽을 열었습니다.

SQL Server 구성 관리자-> SQL Server 네트워크 구성-> 'InstanceName'에 대한 프로토콜-> TCP / IP-> 속성-> IP 주소-> IP 모두->

여기 두 가지 옵션이 있습니다.

  • 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

2

여기서 가장 좋은 추측 은 데이터베이스에 대해 AUTO_CLOSE를 켠 것입니다. 즉, 연결할 때 데이터베이스를 스핀 업해야하므로 초기 시간 초과가 발생합니다.

두 번째 추측은 호스트 이름 확인과 관련이있을 수 있습니다. 따라서 브로드 캐스트로 호스트 이름을 처음 확인하는 데 시간이 너무 오래 걸리지 만 후속 연결 시도시 캐시됩니다. 호스트를 해결하기 위해 무엇을 사용하고 있습니까? DNS에 있습니까? 연결 문자열을 IP, 포트 형식으로 변경하십시오. 즉 192.168.100.100,1433

ipconfig /flushdns성공적인 연결 시도 후 실행 을 시도한 다음 동일한 동작이 발생하는지 확인할 수도 있습니다. dodgy 해결 방법은 HOSTS 파일에 조회를 넣는 것이지만 올바르게 수정해야합니다.


모든 데이터베이스에서 이미 꺼짐 (0)으로 설정되었습니다. 그러나 그것은 클라이언트의 첫 번째 시도 일뿐 만 아니라 클라이언트에서 실행중인 각 앱에 대한 첫 번째 시도입니다 (따라서 SQL Studio에 대한 두 번째 시도는 연결되는 동안 실행되는 동안 VS2010을 시작하여 첫 번째 시도에서는 실패하지만 두 번째는 성공합니다 ... 스튜디오가 이미 연결되어 실행 중이지만).
SergioL

DNS / 호스트 이름 확인과 관련이 있습니까? 멀리가는 경우 SQL 서버 IP / 포트를 사용하여 연결 및 확인하려면 연결 문자열을 변경하려고
닉 Kavadias을

2

눈가리개를 입고 어두운 곳에서 롱 샷처럼 느껴지지만 도움이 될 수 있습니다. Microsoft SQL Developer 포럼에는 가능한 문제와 함께 동일한 문제로 보이는 사항을 설명하는 오래된 스레드가 있습니다. 그의 서버는 Windows Server 2008을 실행하고 있지만 Win7 설정과 관련이있을 수 있습니다.

실 :

http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/58bd9c4d-0572-4567-8e32-82a7fd600022

스레드에서 :

예,이 문제를 해결했습니다.

Windows Server 2008이 SASL LDAP 바인드를 거부하도록 구성되었습니다 (경고 2886 참조).

이러한 바인드를 거부하지 않도록 서버를 구성 했으므로 SQL Server 2008 연결이 올바르게 작동합니다.

LDAP 서명 설정 수정에 대한 정보는 Microsoft KB 935834를 참조하십시오 (새 사용자이므로 링크 할 수 없음).

그것이 도움이되기를 바랍니다!


0

방화벽을 비활성화하십시오. 네트워크 테스트 (ping). SQL Server에 대한 네트워크 트래픽 감지 ( wireshark 사용 )


0

VS 또는 SSMS로 처음 연결하기 전에 SQL 프로파일 러를 실행하고 SQL Server에서 발생하는 상황을 볼 수 있습니까?

또한 이벤트 로그를 확인하여 기록중인 것이 있는지 확인 했습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.