Programing

SQL Server Express 2012에 대한 원격 연결 사용

lottogame 2020. 2. 22. 11:23
반응형

SQL Server Express 2012에 대한 원격 연결 사용


방금 홈 서버에 SQL Server Express 2012를 설치했습니다. 데스크톱 PC의 Visual Studio 2012에서 연결하려고하는데 잘 알려진 오류가 반복적으로 발생합니다.

SQL Server에 연결하는 동안 네트워크 관련 또는 인스턴스 별 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올 바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (제공자 : 명명 된 파이프 공급자, 오류 : 40-SQL Server에 대한 연결을 열 수 없음)

이 문제를 해결하기 위해 내가 한 일 :

  • 서버에서 SQL Server 구성 관리자를 실행하고 SQL Server Browser를 활성화하십시오.
  • 로컬 서브넷의 TCP 포트 1433 및 1434에 대해 서버에서 Windows 방화벽 예외를 추가하십시오.
  • 데스크톱에서 로그인 한 사용자의 SQL Server 인스턴스에 로그인했는지 확인하십시오.
  • SQL Server 인스턴스에서 Windows 인증을 사용하고 있는지 확인하십시오.
  • SQL Server와 전체 Dang 서버를 반복해서 다시 시작하십시오.
  • 내 머리카락을 모두 꺼내십시오.

원격 연결을 허용하는 SQL Server 2012 Express를 어떻게 구할 수 있습니까?


음, 다행 내가 물었다 . 내가 마침내 발견 한 해결책은 다음과 같습니다.

포트 1433에서 원격 TCP / IP 연결을 허용하도록 SQL Server Express를 어떻게 구성합니까?

  1. SQL Server 구성 관리자를 실행하십시오.
  2. SQL Server 네트워크 구성> SQLEXPRESS 프로토콜로 이동하십시오.
  3. TCP / IP가 사용 가능한지 확인하십시오.

지금까지는 훌륭하고 완전히 기대했습니다. 하지만:

  1. TCP / IP를 마우스 오른쪽 단추로 클릭하고 특성을 선택하십시오 .
  2. IP2에서 IP 주소가 로컬 서브넷의 컴퓨터 IP 주소로 설정되어 있는지 확인하십시오.
  3. IPAll로 스크롤하십시오.
  4. TCP 동적 포트비어 있는지 확인하십시오 . (광산은 5 자리 포트 번호로 설정되었습니다.)
  5. TCP 포트1433 으로 설정되어 있는지 확인하십시오 . (내가 비어있었습니다.)

(이 단계를 수행 한 경우에도, 그건 하지 SQL 서버 브라우저를 사용하는 것이 필요하고, 만, 포트 1433을 할 수 있도록 1434을 필요가 없습니다)

이 여분의 5 단계는 이전 버전의 SQL Server, Express 등에서 수행해야 할 일을 기억할 수없는 것입니다. 기본 인스턴스 대신 서버에서 명명 된 인스턴스 (myservername \ SQLEXPRESS)를 사용하고 있기 때문에 필요한 것으로 보입니다. 여길 봐:

특정 TCP 포트에서 수신 대기하도록 서버 구성 (SQL Server 구성 관리자)


UDP 포트 1434를 열고 SQL Server Browser 를 사용 하지 않고 원격 SQL Server에 연결하는 올바른 방법 named instance 대신 ip 및 port 를 사용하는 것입니다 .

명명 된 인스턴스 대신 ip 및 port를 사용하는 것도 공격 노출 영역을 줄이므로 더 안전합니다.

아마도 2 장의 그림은 2000 단어를 말합니다 ...

이 방법은 지정된 포트를 사용합니다 (이것은 대부분의 사람들이 원하는 것입니다.)

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

이 방법을 사용하려면 UDP 포트 1434와 SQL Server Browser가 실행 중이어야합니다.

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


하나 더...

Kyralessa는 훌륭한 정보를 제공하지만이 기사를 읽은 후에도 문제가 발생한 부분을 추가해야합니다.

SQL Server 네트워크 구성> 서버 프로토콜> TCP / IP 사용에서. TCP / IP를 마우스 오른쪽 단추로 클릭하고 특성을 선택하십시오. IP 주소 아래에서 사용중인 각 연결 유형에 대해 사용을 예로 설정해야합니다.

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


이를 사용하여이 문제를 해결할 수 있습니다.

시작> EXECUTE로 이동하여 CLICONFG.EXE를 실행 하십시오.

Named Pipes 프로토콜이 목록의 첫 번째가되며,이를 삭제하고 TCP / IP를 승격시킵니다.

응용 프로그램을 철저히 테스트하십시오.

도움이 되길 바랍니다.


설정할 수도 있습니다

NO를 모두 듣기

프로토콜 대화 상자에서 IP 주소 IP1 (예)

enabled로 설정하고

yr IP 주소 정의

TCP Dynamic을 Blank로 설정하고

TCP 포트 1433 (또는 기타)


이 기사가 도움이되었습니다 ...

SQL Server에서 원격 연결을 설정하는 방법

SQL Server의 모든 것이 구성되었으며 방화벽에서 포트 1433을 차단하는 것이 문제였습니다.


최근 에이 문제가 발생했습니다. 2015 년 8 월

SQL Server 구성 관리자 를 열어서 해결

  • SQL Server 네트워크 구성-> SQLEXPRESS 프로토콜
  • TCP / IP-> IP 주소 탭의 특성
  • 모든 것이 기본값으로 유지되며 IPALL : TCP 포트만 1433으로 설정

SQL Server Manager 를 사용하여 컴퓨터에 연결할 수 있습니다 . [hostaddress], 1433

예:

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


기본 설정으로 설치된 SQL Server 2012 Developer Edition을 설치할 때 SQL Server 구성 관리자-> SQL Server 네트워크 구성-> MSSQLSERVER 프로토콜을로드하고 TCP / IP를 Disabled에서 Enabled로 변경해야했습니다.


UDP 포트 1434를 열기 위해 방화벽 인바운드 포트 규칙을 추가해야했습니다. 이것이 Sql Server Browser가 수신하는 것입니다.


"Rosdi Kasim"방식은 IP에 대한 세부 구성이 필요하지 않기 때문에 선호합니다.

다른 서버를 다시 켜려고 할 때 다시 잊어 버릴 것입니다.

Sql Server Browser 서비스를 활성화하여 간단하게 바보 (KISS)로 유지 한 다음 서버를 연결할 때 IP 뒤에 \ SQLEXPRESS를 추가하십시오.

"\ SQLEXPRESS"없이 IP를 직접 사용하는 것은 기본 포트를 사용하지 않기 때문에 실패한 지점이었습니다.

감사.


로컬로 명명 된 인스턴스를 설치 한 SQL Server 2014와 동일한 문제가있었습니다. (가) 사용하여 연결 FQDN\InstanceName단지 내 사용하여 연결하는 동안, 실패 hostname\InstanceName했다. 예를 들어 : 연결을 사용하여 연결 mycomputername\sql2014했지만 사용 mycomputername.mydomain.org\sql2014하지 않았습니다. DNS가 올바르게 해결되었고 SQL Configuration Manager 내에서 TCP / IP가 활성화되었고 Windows 방화벽 규칙이 추가 된 후 테스트를 위해 방화벽을 꺼서 아무것도 차단하지 않았는지 확인했지만 문제를 해결 한 것은 없었습니다.

마지막으로 SQL Server 에서 " SQL Server Browser "서비스 를 시작해야 했으며 연결 문제가 해결되었습니다.

SQL Server Browser 서비스가 실제로 SQL Server가 연결하는 데 도움이되었다는 것을 결코 알지 못했습니다. 나는 당신이 연결하기 위해 "더 많은 브라우즈"서버를 클릭했을 때 드롭 다운을 채우는 데 도움이되었다는 인상을 받았지만, 포트 번호가 명시 적으로 할당되지 않았다면 클라이언트 요청을 올바른 포트 번호에 맞추는 데 실제로 도움이된다. 웹 사이트 바인딩이 여러 웹 사이트를 호스팅하는 IIS 웹 서버에서 동일한 문제를 완화하는 데 도움이되는 방법).

이 연결 항목은 SQL Server Browser 서비스에 대한 힌트를 제공 한 것입니다. https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-using-fqdn-machine- 이름

  • wstst05 \ sqlexpress를 서버 이름으로 사용하는 경우 클라이언트 코드는 시스템 이름과 인스턴스 이름을 구분하고 wstst05는 netbios 이름과 비교됩니다. 일치하는 데 아무런 문제가 없으며 연결은 로컬로 간주됩니다. 거기에서, 우리는 필요한 정보 검색 없이 아무 문제없이 SQL 브라우저 및 공유 메모리를 통해 SQL 인스턴스에 연결 연락을.
  • wstst05.capatest.local \ sqlexpress를 사용할 때 클라이언트 코드는 이름 (wstst05.capatest.local)과 netbios 이름 (wstst05)의 비교에 실패하고 연결 "원격"을 고려합니다. 이것은 의도적으로 설계된 것이며 향후 개선을 고려할 것입니다. 어쨌든, 연결 원격과 이름이 지정된 인스턴스라는 사실을 고려하여 클라이언트는 이름 확인에 SQLBrowser를 사용해야한다고 결정합니다. wstst05.capatest.local (UDP 포트 1434)에서 SQL 브라우저에 연결하려고 시도하고 해당 부분이 실패한 것 같습니다. 따라서 오류가 발생합니다.

TechNet의 "SQL Server Browser"서비스에 대한 이유 (강조 추가) : https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx

"SQL Server Browser 사용"섹션에서 :

SQL Server Browser 서비스가 실행되고 있지 않은 경우 올바른 포트 번호 또는 명명 된 파이프를 제공하면 여전히 SQL Server에 연결할 수 있습니다. 예를 들어 포트 1433에서 실행중인 경우 TCP / IP를 사용하여 SQL Server의 기본 인스턴스에 연결할 수 있습니다. 그러나 SQL Server Browser 서비스가 실행되고 있지 않으면 다음 연결이 작동하지 않습니다 .

  • 모든 매개 변수 (예 : TCP / IP 포트 또는 명명 된 파이프)를 완전히 지정하지 않고 명명 된 인스턴스에 연결을 시도하는 구성 요소 .
  • 나중에 다른 구성 요소가 다시 연결하는 데 사용할 수있는 서버 / 인스턴스 정보를 생성하거나 전달하는 모든 구성 요소
  • 포트 번호 또는 파이프를 제공하지 않고 명명 된 인스턴스에 연결
  • TCP / IP 포트 1433을 사용하지 않는 경우 명명 된 인스턴스 또는 기본 인스턴스에 대한 DAC
  • OLAP 리디렉터 서비스
  • SQL Server Management Studio, Enterprise Manager 또는 Query Analyzer에서 서버 열거

클라이언트-서버 시나리오에서 SQL Server를 사용하는 경우 (예 : 응용 프로그램이 네트워크를 통해 SQL Server에 액세스하는 경우 ) SQL Server Browser 서비스를 중지하거나 비활성화하면 각 인스턴스에 특정 포트 번호를 할당해야합니다. 항상 해당 포트 번호를 사용하도록 클라이언트 애플리케이션 코드를 작성하십시오. 이 방법에는 다음과 같은 문제가 있습니다 .

  • 클라이언트 응용 프로그램 코드가 올바른 포트에 연결되도록 업데이트하고 유지 보수해야합니다.
  • 각 인스턴스에 대해 선택한 포트가 서버의 다른 서비스 나 응용 프로그램에서 사용되어 SQL Server 인스턴스를 사용할 수 없게됩니다.

"SQL Server Browser의 작동 방식"섹션에있는 동일한 기사의 추가 정보 :

SQL Server 인스턴스 하나만 포트 또는 파이프를 사용할 수 있기 때문에SQL Server Express를 포함하여 명명 된 인스턴스에 다른 포트 번호와 파이프 이름이 할당됩니다. 기본적으로 명명 된 인스턴스와 SQL Server Express는 모두 동적 포트를 사용하도록 구성됩니다. 즉, 사용 가능한 포트는 SQL Server가 시작될 때 할당됩니다. 원하는 경우 특정 포트를 SQL Server 인스턴스에 할당 할 수 있습니다. 연결시 클라이언트는 특정 포트를 지정할 수 있습니다. 그러나 포트가 동적으로 할당되면 SQL Server가 다시 시작될 때마다 포트 번호가 변경 될 수 있으므로 클라이언트가 올바른 포트 번호를 알 수 없습니다. ... SQL Server 클라이언트가 SQL Server 리소스를 요청하면 클라이언트 네트워크 라이브러리는 포트 1434를 사용하여 서버에 UDP 메시지를 보냅니다. SQL Server Browser는 TCP / IP 포트 또는 요청 된 인스턴스의 명명 된 파이프로 응답합니다.


Configuration Manager를 통해 포트를 추가하고 SQL 연결 [host] \ [db 인스턴스 이름], 1433에 포트 번호를 추가해야했습니다.

instancename과 port 사이의, (쉼표)에 유의하십시오


나는 지금까지 모든 대답에서 언급 한 것과 다른 문제가있었습니다!

SQL Server Express가 아니라 Visual Studio에서 사용한다고 말하면서 시작해야하지만 솔루션은 정확히 동일해야합니다.

글쎄, 신, 그것은 실제로 매우 간단하고 어리석은 것일 수 있습니다. 데이터베이스를 만들려고 시도하고 Visual Studio에서 SQL Server의 이름을 제안하면 Windows 사용자 이름이 부여되었으며 실제로는 서버 이름이므로 데이터베이스를 사용했습니다.

실제로 그것은 실제로 내 Windows 사용자 이름 + \SQLEXPRESS였습니다. 설정을 변경하지 않았다면 아마도 귀하의 설정일 것입니다. 작동하면 읽기를 중지하십시오. 이것이 나의 대답이다. 작동하지 않으면 이름이 다를 수 있습니다.

나와 같이 Visual Studio에서만이 문제가 발생한 경우 다음 단계를 수행하십시오.

  1. SQL Server Management Studio 아이콘을 엽니 다 .
  2. 서버가 보이지 않으면 (기본적으로 왼쪽에 도킹되어 있음)을 누르 F8거나 보기-> 개체 탐색기로 이동하십시오 .
  3. 서버 이름을 마우스 오른쪽 버튼으로 클릭하고 속성 (마지막 항목)을 선택하십시오.
  4. 왼쪽 하단에서 " 서버 " 아래에 서버의 실제 이름이 표시됩니다 (연결이 아니라 그 위에 있음).

This is the name of the server and this is what you should attempt to connect to! not what Visual Studio suggests!


One more thing to check is that you have spelled the named instance correctly!

This article is very helpful in troubleshooting connection problems: How to Troubleshoot Connecting to the SQL Server Database Engine


In my case the database was running on non standard port. Check that the port you are connecting is the same as the port the database is running on. If there are more instances of SQL server, check the correct one.


All you need to do is open the relevant port on the server's firewall.


Having problems connecting to SQL Server?

Try disconnecting firewall.

If you can connect with firewall disconnected, may be you miss some input rules like "sql service broker", add this input rules to your firewall:

"SQL 관리자 연결"TCP 포트 1434

"SQL 관리자 연결"UDP 포트 1434

"SQL ANALYSIS 서비스"TCP 포트 2383

"SQL 찾아보기 분석 서비스"TCP 포트 2382

"SQL DEBUGGER / RPC"TCP 포트 135

동적 포트가있는 경우 "SQL SERVER"TCP PORT 1433 및 기타

"SQL SERVICE BROKER"TCP 포트 4022

참고 URL : https://stackoverflow.com/questions/11278114/enable-remote-connections-for-sql-server-express-2012



반응형