programing

MS SQL Server 2008용 포트를 찾는 방법은 무엇입니까?

randomtip 2023. 5. 21. 17:09
반응형

MS SQL Server 2008용 포트를 찾는 방법은 무엇입니까?

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

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

Start버튼을 클릭합니다.

에 가다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.

은 수있다니습찾을다▁find▁will를 찾을 수 있을 것입니다.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.dm _exec_connections - 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 포트를 설정하는 것이 왜 작동하지 않는지 이해할 수 없었기 때문에 이 문제를 발견했습니다.드디어 전체상을 얻었으니 공유해야겠다고 생각했습니다.

무엇보다도 SQL EXPRESS를 위한 프로토콜에서 SQL Server 구성 관리자를 사용하여 "TCP/IP"를 활성화해야 합니다.

명명된 인스턴스(이 경우 SQL Express)를 사용하면 동적 포트에서 수신됩니다.이 동적 포트를 찾으려면 다음과 같은 몇 가지 옵션이 있습니다.

  • 견제의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"(여기서 x.x.x.x는 서버 IP) 이 시점에서 이미 해결되었습니다.

그러나 인스턴스 이름을 전달하여 원격 연결)을 전달하여 원격으로 연결하려고 했습니다.x.x.x.x\SQLExpress이때 SQL Browser 서비스가 실행됩니다.인스턴스 이름을 51118 포트로 해결하는 장치입니다. SQL Browser 서비스는 UDP 포트 1434(표준 및 정적)에서 수신하기 때문에 서버의 방화벽에서도 허용해야 했습니다.

실제 답변을 조금 더 설명하자면, 다른 사용자가 동적 포트를 좋아하지 않고 자신의 SQL Server 인스턴스에 대한 정적 포트를 원하는 경우 이 링크를 사용해 보십시오.

아래와 같은 라인에 대한 ERROGROUG 로그를 작성합니다.SQL Server가 원격 액세스에 사용되지 않거나 TCP를 통해 사용할 수 없습니다.SQL 서버 구성 관리자를 통해 이 설정을 변경할 수 있습니다.

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

사용해 보십시오(에 대한 액세스 필요).sys.dm_exec_connections):

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

SQLEXPRESS2008 프로토콜에서 SQL Server 구성 관리자를 사용하여 TCP/IP를 활성화하여 문제를 해결했습니다. 서비스를 다시 시작했는데 ERRORLOG 파일에 "Server is listening on"이 표시됩니다.

SSMS에서 다음 스크립트를 사용합니다.

SELECT
     s.host_name
    ,c.local_net_address
    ,c.local_tcp_port
    ,s.login_name
    ,s.program_name
    ,c.session_id
    ,c.connect_time
    ,c.net_transport
    ,c.protocol_type
    ,c.encrypt_option
    ,c.client_net_address
    ,c.client_tcp_port
    ,s.client_interface_name
    ,s.host_process_id
    ,c.num_reads as num_reads_connection
    ,c.num_writes as num_writes_connection
    ,s.cpu_time
    ,s.reads as num_reads_sessions
    ,s.logical_reads as num_logical_reads_sessions
    ,s.writes as num_writes_sessions
    ,c.most_recent_sql_handle
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
    ON c.session_id = s.session_id

--filter port number
--WHERE c.local_tcp_port <> 1433
USE master
GO
xp_readerrorlog 0, 1, N'Server is listening on', 'any', NULL, NULL, N'asc' 
GO

[SQL Server 오류 로그를 읽어 SQL Server 데이터베이스 엔진의 명명된 인스턴스에서 사용하는 포트 식별]

다음 두 가지 명령을 사용할 수 있습니다.tasklist그리고.netstat -oan

Tasklist.exe는 것과 같은taskmgr.exe텍스트 모드입니다.

와 함께tasklist.exe또는taskmgr.exe의 PID를 얻을 수 있습니다.sqlservr.exe

와 함께netstat -oan연결 PID를 표시하고 필터링할 수 있습니다.

예:

C:\>tasklist | find /i "sqlservr.exe"
sqlservr.exe  1184 Services    0 3.181.800 KB

C:\>netstat -oan | find /i "1184"
TCP  0.0.0.0:1280  0.0.0.0:0  LISTENING  1184

이 예에서 SQL Server 포트는 1280입니다.

추출처: http://www.sysadmit.com/2016/03/mssql-ver-puerto-de-una-instancia.html

원격 서버에 대한 관리자 권한이 없는 경우 유일한 방법인 포트 검색을 통해 이 작업을 수행할 수도 있습니다.

Nmap(http://nmap.org/zenmap/) 을 사용하여 "Intensity TCP 검사"를 수행하면 서버의 모든 인스턴스에 대해 다음과 같은 결과를 얻을 수 있습니다.

[10.0.0.1\DATABASE]    
Instance name: DATABASE
Version: Microsoft SQL Server 2008 R2 RTM    
Product: Microsoft SQL Server 2008 R2    
Service pack level: RTM    
TCP port: 49843    
Named pipe: \\10.0.0.1\pipe\MSSQL$DATABASE\sql\query

중요한 참고:쿼리 분석기 또는 MS SQL Server Management Studio를 사용하여 테스트하려면 콜론 대신 쉼표를 사용하여 HTTP와 같이 일반적으로 포트에 연결하는 것과 다른 서버 이름 및 포트를 구성해야 합니다.

  • 이름: Management Studio 파일:10.0.0.1,49843
  • 문자열: 연결문열:Data Source=10.0.0.1,49843

하지만

  • 문자열: JDBC 파일:jdbc:microsoft:sqlserver://10.0.0.1:49843;DatabaseName=DATABASE

SQL Server 2005 - 2012에 적용됩니다.응용 프로그램 아래의 오류 로그에서 이벤트 ID = 26022를 찾습니다.그러면 sql 서버의 포트 번호와 액세스할 수 있는 IP 주소가 표시됩니다.

위에 나열된 내용 외에도 SQL Express가 원격으로 연결할 수 있도록 TCP와 UDP 포트를 모두 활성화해야 했습니다.세가 있기 에 나는 내개발시에세가다른있때에문기가스인스턴지스템,를 합니다.1430-1435UDP.TCP의 UDP 파일입니다.

언급URL : https://stackoverflow.com/questions/1518823/how-to-find-the-port-for-ms-sql-server-2008

반응형