IP 주소를 통해 서버의 SQL 데이터베이스에 연결할 수 없습니다


45

Windows Server 2008을 실행하는 서버를 설정했으며 SQL Server 2008 Express가 설치되어 있습니다.

을 통해 컴퓨터의 SQL Server Express 데이터베이스에 연결할 수 있습니다 MACHINENAME/SQLEXPRESS.

그러나 IP 주소를 사용하여 소프트웨어 나 스크립트를 통해 연결할 때는 연결할 수 없습니다.

나는 시도했다 :

  • 방화벽을 끄십시오.
  • SQL 데이터베이스에 대한 원격 연결 허용
  • SQL 구성 내에서 TCP / IP 사용

'SQL Server Management Studio'소프트웨어를 통해 연결을 시도하면 다음 메시지가 표시됩니다.

에러 메시지:

서버에 연결하는 중 오류가 발생했습니다. SQL Server 2005에 연결할 때이 오류는 기본 설정에서 SQL Server가 원격 연결을 허용하지 않기 때문에 발생할 수 있습니다. (제공자 : TCP 공급자, 오류 : 0-대상 컴퓨터가 적극적으로 거부했기 때문에 연결할 수 없습니다.) (Microsoft SQL Server, 오류 : 10061)

서버와의 연결이 완료되었지만 로그인 프로세스 중에 오류가 발생했습니다. (제공자 : TCP 공급자, 오류 : 0-호스트 컴퓨터의 소프트웨어에 의해 설정된 연결이 중단되었습니다.) (Microsoft SQL Server, 오류 : 10053)

UK Fast가 저에게 보낸 일부 정보에 따라 세부 정보를 수정했지만 "지원 범위 내에 있지 않습니다." 더 이상 도움을 줄 수 없습니다.

여러분의 의견을 기다리겠습니다.


연결할 때 포트 번호를 추가해 보셨습니까?

"192.168.0.1/SQLEXPRESS"(192.168.0.1이 실제로 서버의 IP 주소 임) 에 연결하려고 합니까, 아니면 인스턴스 이름을 생략하고 있습니까?
Rowland Shaw

2
실제로 /슬래시`\`가 아닌 슬래시를 사용하고 있습니까?
Aaron Bertrand

답변:


78

SQL Server는 명명 된 인스턴스로 설치되므로 우선 다음 서버 이름을 사용하여 서버에 연결해보십시오 IP Address\SQLEXPRESS..
명명 된 인스턴스로 SQL Server를 설치하면 기본적으로 동적 TCP / IP 포트가 사용되므로 인스턴스 이름 (단지 IP 주소)을 지정하여 whitout에 연결할 수 없습니다. 인스턴스 이름을 사용하지 않고 서버에 연결해야하는 경우 정적 TCP 포트를 사용하도록 서버를 재구성해야합니다. 그렇게하려면 다음을 수행하십시오.

  1. SQL Server 구성 관리자를 엽니 다.
  2. 로 전환 SQL Server Network Configuration | Protocols for SQLEXPRESS;
  3. TCP/IP프로토콜을 두 번 클릭하십시오 .
  4. 필드 에서 Yes값을 선택하십시오 Enabled.
  5. IP Addresses탭으로 전환 하십시오.
  6. IPAll섹션을 찾으십시오 .
  7. TCP Dynamic Ports해당 섹션 의 필드를 지우십시오 .
  8. 필드에 1433값을 지정하십시오 TCP Port.
    여기에 이미지 설명을 입력하십시오
  9. 서버 다시 시작
    IP 주소 만 사용하여 서버에 연결해보십시오.

7
그 정보를 제공해 주셔서 감사합니다. 한 가지를 제외하고는 잘 작동합니다. SQL Management Studio에서 xxxx \ instance, 1433과 같이 서버에 연결할 포트를 계속 제공해야합니다. 표준 포트를 사용하고 있기 때문에 다소 이상하다고 생각합니다.
Tomas Jansson

1
@TomasJansson이보고 한 것과 정확히 반대의 경우를 제외하고는 나를 위해 일했습니다 : 포트 번호 없이 Management Studio에서 작동 하지만 기본 포트 (1433)를 사용하고 있어도 연결 문자열에서 하나를 지정해야합니다.
lpacheco

위의 훌륭한 대답 외에도 SQL Server 2017에서는 사용자 (특히 sa) 암호 필드를 비워 둘 수 없다는 것을 깨달았습니다. 비밀번호가 설정되어 있는지 확인하십시오. 그렇지 않으면 연결되지 않습니다.
aLearner

netstat -a -b를 사용하고 sqlservr.exe를 찾은 다음 포트가 1433인지 확인하십시오. 항상 그런 것은 아닙니다. 그렇지 않으면 당신은 미쳐 갈 것입니다.
jwize

8

모든 서비스를 팔로우하고 다시 시작하여 문제를 해결하면 나를 위해 다음을 활성화해야합니다.

  • 공유 메모리
  • TCP / IP
  • 명명 된 파이프

SQL Server 구성 명명 된 파이프


8

포트를 사용하여 연결하려고 할 때 위의 답변 외에도 SQL Server Express 2017 을 사용 하면 콜론 구문이 아닌 쉼표 구문을 사용해야합니다 .

 MyServerName,1433\InstanceName

위의 내용을 두 시간 동안 레슬링 한 후 모든 제안 사항을 따르고 여전히 연결되지 않은 경우 위의 내용을 대신 사용하여 SQL Server Management Studio를 통해 원격으로 즉시 연결했습니다. 성공의 첫 단계.


1
이것은 나를 위해 수정했습니다 (서버 이름과 인스턴스 이름 사이에서 포트를 이동). 끝에 포트를 입력해도 작동하지 않았습니다.
masospaghetti

1

동적 포트 번호를 명시 적으로 지정하여 원격으로 연결할 수 있었지만 이것은 이상적인 것은 아닙니다.

문제는 SQL Server Browser 서비스가 비활성화 된 것 같습니다. 이 서비스를 활성화하고 시작하면 호스트 이름과 인스턴스 이름을 지정하여 원격으로 연결할 수있었습니다.


0

이전에 말한 내용을 추가하면됩니다. 서버 (같은 데스크톱의 클라이언트 및 서버)에 연결할 수없는 것과 동일한 문제가 있었고 여기에 나열된 모든 단계를 수행하여 문제를 해결했습니다. 그러나 결국 문제가 무엇인지 알았습니다. SQL Server Management Studio로 가서 "SQL server services"를 클릭 한 다음 연결해야하는 서버를 한 번 클릭하면됩니다. 그런 다음 녹색 '실행'버튼을 클릭하십시오. 내 컴퓨터가 서버를 실행하고 액세스하고 있기 때문에 이것이 나에게 고유 한 것인지 확실하지 않습니다. 다른 사람을 도울 수 있기를 바랍니다.

실행 / 시작 버튼이있는 곳


1
이 의견은 어떻게 과소 평가 되었습니까? 간단하고 문제가 해결되었습니다
Cavid Hummatov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.