SQL Server가 시작되었지만 포트에서 수신 대기하지 않았습니다


9

SQL Server 2012를 새로 설치했습니다. 아직 데이터베이스가 생성되지 않았습니다. 그리고 sa / password로 Management Studio를 열 수 있습니다. Binn \ sqlservr.exe는 서비스로 시작되었으며 서비스 목록에서 시작된 것을 볼 수 있습니다. 그러나 아래에서 확인한 것처럼 1433 포트를 수신하지 않거나 기본적으로 포트를 수신하지 않았습니다.

tasklist|find /I "sql"

나는 얻었다 :

sqlservr.exe                  5668 Services                   0     40,112 K

5668은 PID라고 생각합니다. 그리고 PID = "5668"을 얻으려면 어떤 포트를 수신하고 있습니까?

netstat -ano | find /I "5668"

하지만 공란 외에는 아무것도 없습니다. 반면에이 사이트에서 게시물을 검색 한 후 시작-> 모든 프로그램-> Microsoft SQL Server 2012-> 구성 도구-> SQL Server 구성 관리자-> SQL Server SQL Native Client 11.0에서 SQL Server 구성을 다시 확인했습니다. 구성-> 클라이언트 프로토콜-> TCP / IP-> 기본 포트 1433. SQL Server (MyInstanceName), SQL Server 에이전트 (MyInstanceName) 및 SQL Server Browser의 3 가지 서비스가 있습니다. 마지막 두 개가 중지됩니다.

SQL Server 구성 관리자-> SQL Server 네트워크 구성-> MyInstanceName의 프로토콜-> TCP / IP는 기본적으로 비활성화되어 있습니다. TCP / IP는 활성화 한 후 서비스를 다시 시작하고 netstat -ano | find / I "newPIDNum"명령을 찾았습니다.

TCP    0.0.0.0:52395          0.0.0.0:0              LISTENING  5668(newPIDNum)   

왜 1433 대신 52395입니까? 그리고 Windows ODBC 데이터 원본 관리자를 사용하여 DSN을 만들지 못했습니다.이 오류는 지정된 SQL 서버를 찾을 수 없습니다. 저에게 어떤 도움이 필요하십니까? 감사.


기본 SQL Server 네트워크 구성 (2008 년의 경우 2012 버전을 찾을 수 없지만 다른 것으로 생각하지 않습니다)
Damien_The_Unbeliever

감사. 나에게 정말 좋은 도움. 내 DSN 상자에 대한 의견이 더 있습니까?

명명 된 인스턴스를 사용하고있는 것 같습니다 (내가 알고있는 한 기본 인스턴스 만 1433에서 수신 대기합니다). DSN을 만들 때 인스턴스 이름을 포함하고 있습니까?
Damien_The_Unbeliever

예, 설치할 때 인스턴스 이름을 입력했습니다. DSN을 만들 때 연결할 DSN 이름 (임의 이름을 입력했습니다), SQL 서버를 입력하라는 메시지가 표시되었습니다. <.MyInstanceName>),

아직 MyInstanceName을 포함 할 다른 곳을 보지 못했습니다. 그리고 다음 버튼은 <서버 별명>, <서버 이름>을 설정하고 <동적 포트 결정>을 확인할 수있는 <클라이언트 구성>뿐만 아니라 인증을 지시합니다.

답변:


14

내 SQL 서버 TCP가 포트 1433에서 연결을 수신하게 한 것은 다음과 같습니다.

  1. 구성 도구 / SQL Server 구성 관리자
  2. SQL Server 네트워크 구성에서 인스턴스 이름을 클릭하십시오.
  3. 수 있도록 TCP통신을
  4. TCP통신 항목을 마우스 오른쪽 버튼으로 클릭 하고Properties
  5. IP 주소 탭을 클릭하십시오
  6. 비 VMnet IP 주소를 모두 활성화하고 Port" IPAll " 항목에 1433을 입력하십시오 .
  7. SQL Server 서비스 탭에서 SQL Server를 다시 시작하십시오.
  8. 다음을 사용하여 구성을 확인하십시오 netstat -an.

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING
    

1
이것은 나를 위해 작동하는 유일한 솔루션입니다. 다른 매뉴얼은 IPAII 포트에 대해서도 언급하지 않습니다. 고마워, 당신은 내 하루를 만들
QkiZ

13

1433 대신 52395가 필요한 이유

명명 된 인스턴스는 동적 포트에서 수신 대기합니다. 클라이언트에게 실제 포트를 알리는 Sql Server Browser 서비스 의 작업입니다 . Sql Browser는 UDP 1434에서 수신 대기하며 'foo'인스턴스의 수신 포트는 무엇입니까? '형식의 질문에 응답합니다. SQL Server Browser 서비스는 TCP 및 명명 된 파이프 프로토콜 모두에 필요합니다. 클라이언트는 특별한 구성이 필요없이 SQL Server Browser를 투명하게 사용합니다. 연결 문자열 (또는 ODBC DSN)에 인스턴스 이름을 지정하면 클라이언트 라이브러리는 먼저 SQL Server Browser 서비스에 연결해야한다는 것을 알게됩니다.

SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) 및 SQL Server Browser의 3 가지 서비스가 있습니다. 마지막 두개는 멈췄다

분명히 SQL Server Browser가 작업을 수행하려면 시작해야합니다. 시작하고 시작 유형을 자동으로 변경하십시오.

참고로 자주 사용되는 대체 구성은 명명 된 인스턴스에 정적 포트를 사용하고 연결 문자열 ( tcp:<hostname>:<port>)에 포트를 지정하는 것 입니다. SQL Server Browser를 사용하지 않아도되는 이점이 있지만 클라이언트를 신중하게 유지 관리해야합니다. 청취 포트를 변경하려면 모든 클라이언트, 모든 컴퓨터, 모든 위치에서 조정 된 변경이 필요합니다. 일반적으로 큰 고통이 있습니다. 대신 SQL Server Browser에 의존하는 것이 좋습니다.


1

방화벽-그중 3 개

최신 버전의 Windows에 익숙하지 않은 사람들 (XP 이후에는 익숙하지 않으며 Windows 10에 SQL Server를 설치하려고했습니다) :

  • 방화벽은 3 개의 별도 장소 (예 : 3 개의 다른 프로파일)에서 켜야합니다.

처음 보이는 것 (도메인 프로필)에 대해서만 그렇게해도 1433 (SQL Server)이 아닌 포트 80 (IIS)에 연결할 수있는 이유가 여전히 남아 있습니다.

여기에 이미지 설명을 입력하십시오


1

나는 아직 언급 할 수 없다 (매우 활동적이지 않기 때문에 명성이 낮음) : 위에서 언급 한 것처럼 Windows 방화벽을 비활성화하면 가능한 최악의 대답입니다. 올바른 방법은 다음과 같습니다. "인바운드"로 방화벽 규칙을 작성하여 필요한 로컬 IP (또는 모두)에서 포트 1433 통신을 허용하십시오. 또한 해당 SQL Server에 연결할 수있는 원격 IP를 설정하는 것이 좋습니다.

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