[sql-server] MS SQL Server 2008 용 포트를 찾는 방법은 무엇입니까?

로컬 컴퓨터에서 MS SQL Server 2008을 실행하고 있습니다. 기본 포트가 1433이라는 것을 알고 있지만이 포트에서 수신하지 않는 방법이 있습니다. SQL은 Express 에디션입니다.

포트를 찾기 위해 이미 로그, SQL Server Management Studio, 레지스트리 및 확장 저장 프로 시저를 시도했습니다. 그러나 나는 그것을 찾을 수 없었다. 제발 도와주세요. 감사.



답변

StartWindows 에서 버튼을 클릭 합니다. 이동All Programs -> Microsoft SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager

에서 SQL Native Client 10.0 Configuration -> Client Protocols -> TCP/IP
두 번 클릭 (오른쪽 클릭 선택 Properties)을 클릭 합니다 TCP/IP.

찾을 수 Default Port 1433있습니다.

연결에 따라 포트 번호가 다를 수 있습니다.


답변

당신은 또한 볼 수 있습니다

netstat -abn

열린 상태로 유지하는 해당 응용 프로그램과 함께 포트를 제공합니다.

편집 : 또는 TCPView .


답변

다음은 내가 찾은 5 가지 방법입니다.

  • 방법 1 : SQL Server 구성 관리자
  • 방법 2 : Windows 이벤트 뷰어
  • 방법 3 : SQL Server 오류 로그
  • 방법 4 : sys.dm_exec_connections DMV
  • 방법 5 : xp_instance_regread를 사용하여 레지스트리 읽기

방법 4 : sys.dm_exec_connections DMV
이것이 거의 가장 쉬운 방법이라고 생각합니다.
DMV는 SQL Server 인스턴스를 모니터링하는 데 사용할 수있는 서버 상태를 반환합니다. sys.dm_exec_connections DMV를 사용하여 아래 T-SQL 코드를 사용하여 SQL Server 인스턴스가 수신 대기중인 포트 번호를 식별 할 수 있습니다 .

SELECT local_tcp_port
FROM   sys.dm_exec_connections
WHERE  session_id = @@SPID
GO

Result Set:
local_tcp_port
61499

(1 row(s) affected)

방법 1 : SQL Server 구성 관리자

1 단계. 시작> 모든 프로그램> Microsoft SQL Server 2012> 구성 도구> SQL Server 구성 관리자를 클릭합니다.

2 단계. SQL Server 구성 관리자> SQL Server 네트워크 구성> 프로토콜로 이동합니다.

단계 3. TCP / IP를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.

여기에 이미지 설명 입력

단계 4. TCP / IP 속성 대화 상자에서 IP 주소 탭으로 이동하여 IPAll 그룹까지 아래로 스크롤합니다.

여기에 이미지 설명 입력

SQL Server가 정적 포트에서 실행되도록 구성된 경우 TCP 포트 텍스트 상자에서 사용할 수 있으며 동적 포트에서 구성된 경우 현재 포트는 TCP 동적 포트 텍스트 상자에서 사용할 수 있습니다. 여기 내 인스턴스는 포트 번호 61499에서 수신 대기합니다.

다른 방법은 여기에서 찾을 수 있습니다. http://sqlandme.com/2013/05/01/sql-server-finding-tcp-port-number-sql-instance-is-listening-on/


답변

나는 방금 원격 연결을 만드는 데 문제가 있었고 방화벽에서 1433 포트를 설정하는 것이 왜 작동하지 않는지 이해할 수 없었기 때문에 이것을 발견했습니다. 이제 드디어 전체 사진을 얻었으므로 공유 해야겠다고 생각했습니다.

우선 SQLEXPRESS에 대한 프로토콜에서 SQL Server 구성 관리자를 사용하여 “TCP / IP”를 활성화해야합니다!

명명 된 인스턴스 (이 경우 “SQLExpress”)를 사용하면 동적 포트에서 수신 대기합니다. 이 동적 포트를 찾으려면 몇 가지 옵션이 있습니다. 몇 가지 예를 들면 다음과 같습니다.

  • ERRORLOG에있는 SQL Server 확인 '{MS SQL Server Path}\{MS SQL Server instance name}\MSSQL\Log'(내부에는 다음과 유사한 행이 있습니다 "2013-07-25 10:30:36.83 Server Server is listening on [ 'any' <ipv4> 51118]".-> 따라서 51118이이 경우 동적 포트입니다.

  • 레지스트리 확인 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{MSSQL instance name}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll, 내 경우 TcpDynamicPorts=51118.

    편집 : {MSSQL instance name}뭔가 같은 : MSSQL10_50.SQLEXPRESS뿐만 아니라SQLEXPRESS

물론 방화벽에서이 TCP 포트를 허용하고 다음을 전달하여 원격 연결을 생성하면 "x.x.x.x,51118"(여기서 xxxx는 서버 IP) 이미이 시점에서 해결됩니다.

하지만 인스턴스 이름 (예 :)을 전달하여 원격으로 연결하고 싶었습니다 x.x.x.x\SQLExpress. 이것은 SQL Browser 서비스가 시작될 때입니다. 인스턴스 이름을 51118 포트로 해석하는 장치입니다. SQL Browser 서비스는 UDP 포트 1434 (표준 및 정적)에서 수신 대기하므로 서버의 방화벽에서도이를 허용해야했습니다.

실제 답변을 조금 확장하려면 다른 사람이 동적 포트를 좋아하지 않고 SQL Server 인스턴스에 대한 정적 포트를 원하는 경우이 링크를 시도해야 합니다 .


답변

ERROLOG 로그에서 다음과 같은 줄을 찾습니다. 표시되지 않으면 SQL Server가 원격 액세스를 사용하도록 설정되어 있지 않거나 TCP를 통하지 않습니다. SQL Server 구성 관리자를 통해이를 변경할 수 있습니다.

Server is listening on [ 192.128.3.2 <ipv4> 1433].

답변

SQLEXPRESS2008 용 프로토콜에서 SQL Server 구성 관리자를 사용하여 TCP / IP를 활성화하여 문제를 해결했습니다. 서비스를 다시 시작했으며 이제 “서버가 수신 대기 중입니다”가 ERRORLOG 파일에 표시됩니다.


답변

이것을 시도하십시오 (에 대한 액세스 필요 sys.dm_exec_connections) :

SELECT DISTINCT
    local_tcp_port
FROM sys.dm_exec_connections
WHERE local_tcp_port IS NOT NULL