SQL Server 실행 포트를 찾는 방법은 무엇입니까?
예이 글을 읽었습니다. MS SQL Server 2008 용 포트를 찾는 방법은 무엇입니까?
불운.
텔넷 1433
연결 실패를 반환하므로 다른 포트를 지정해야합니다.
나는 사용하려고했다
netstat -abn
하지만이 목록에 sqlservr.exe 또는 이와 유사한 것이 표시되지 않습니다.
그 항구를 찾기가 왜 그렇게 어려운가요? : /
이 시도:
USE master
GO
xp_readerrorlog 0, 1, N'Server is listening on'
GO
http://www.mssqltips.com/sqlservertip/2495/identify-sql-server-tcp-ip-port-being-used/
아주 간단합니다. 작업 관리자에서 sqlsrvr.exe PID를 기록한 후 다음 명령을 실행합니다.
netstat -ano | findstr *PID*
SQL 서버 (포트 포함)의 TCP 및 UDP 연결 표준이 TCP의 경우 1433이고 UDP의 경우 1434임을 표시합니다.
예 :
이것은 나를 위해 일하는 것입니다.
SELECT DISTINCT
local_tcp_port
FROM sys.dm_exec_connections
WHERE local_tcp_port IS NOT NULL
SQL Server 구성 관리자> SQL Server 네트워크 구성> 인스턴스> TCP / IP> 속성을 시작할 수있는 경우
관리자 권한 명령 프롬프트에서 "netstat -a -b -n"을 실행했는데 "sqlservr.exe"가 전혀 표시되지 않으면 SQL Server 서비스가 실행되고 있지 않거나 해당 TCP / IP 네트워크 라이브러리가 비활성화 됨.
SQL Server 구성 관리자를 실행합니다 (시작 | 모든 프로그램 | Microsoft SQL Server 2008 | 구성 도구).
SQL Server 서비스로 이동합니다. 오른쪽 창에서 SQL Server ()를 찾습니다. 중지 되었습니까? 그렇다면 시작하십시오.
SQL Server 네트워크 구성 (또는 해당하는 SQL Server 네트워크 구성 (32 비트))으로 이동 한 다음. 오른쪽 창에서 "TCP / IP"를 찾습니다. 비활성화되어 있습니까? 그렇다면 활성화 한 다음 SQL Server 서비스를 다시 시작하십시오.
인스턴스 ID는 기본 인스턴스의 경우 MSSQLSERVER입니다.
클라이언트를 서비스에 연결하기 위해 TCP / IP 네트워크 라이브러리를 활성화 할 필요가 없습니다. 클라이언트는 공유 메모리 네트워크 라이브러리 (클라이언트가 동일한 시스템에있는 경우) 또는 Named Pipes 네트워크 라이브러리를 통해 연결할 수도 있습니다.
TCP / IP를 사용하지 않을 수도 있습니다.
SQL Server 구성 관리자를 살펴보고 사용중인 프로토콜을 확인하세요.
우리 기업에서는 MSSQL Server에 대한 액세스 권한이 없으므로 시스템 테이블에 액세스 할 수 있습니다.
나를 위해 작동하는 것은 :
Wireshark
서버에 대한 연결을 여는 동안 네트워크 트래픽을 캡처 (관리자 권한으로 실행, 네트워크 인터페이스 선택)합니다.- IP 주소 찾기
ping
- 필터링
ip.dst == x.x.x.x
포트는 info
형식으로 열에 표시 됩니다.src.port -> dst.port
다음 방법으로 프로토콜을 활성화하십시오. 구성 관리자 > SQL 서버 네트워크 구성 > MSSQLSERVER에 대한 프로토콜 > TCP / IP 속성
이것은 내가 사용하는 또 다른 스크립트입니다.
-- Find Database Port script by Jim Pierce 09/05/2018
USE [master]
GO
DECLARE @DynamicportNo NVARCHAR(10);
DECLARE @StaticportNo NVARCHAR(10);
DECLARE @ConnectionportNo INT;
-- Look at the port for the current connection
SELECT @ConnectionportNo = [local_tcp_port]
FROM sys.dm_exec_connections
WHERE session_id = @@spid;
-- Look for the port being used in the server's registry
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
,@key =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
,@value_name = 'TcpDynamicPorts'
,@value = @DynamicportNo OUTPUT
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
,@key =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
,@value_name = 'TcpPort'
,@value = @StaticportNo OUTPUT
SELECT [PortsUsedByThisConnection] = @ConnectionportNo
,[ServerStaticPortNumber] = @StaticportNo
,[ServerDynamicPortNumber] = @DynamicportNo
GO
SQL Server 2000 프로그램 | MS SQL 서버 | 클라이언트 네트워크 유틸리티 | TCP_IP를 선택한 다음 속성을 선택합니다.
SQL Server 2005 프로그램 | SQL 서버 | SQL Server 구성 관리자 | MSSQLSERVER에 대한 프로토콜을 선택하거나 클라이언트 프로토콜을 선택하고 TCP / IP를 마우스 오른쪽 버튼으로 클릭합니다.
한 번 시도 :-
USE master
DECLARE @portNumber NVARCHAR(10)
EXEC xp_instance_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
@value_name = 'TcpDynamicPorts',
@value = @portNumber OUTPUT
SELECT [Port Number] = @portNumber
GO
select * from sys.dm_tcp_listener_states
멋진 형식과 프로세스를 구별하는 기능을 갖춘 PowerShell :
ForEach ($SQL_Proc in Get-Process | Select-Object -Property ProcessName, Id | Where-Object {$_.ProcessName -like "*SQL*"})
{
Get-NetTCPConnection | `
Where-Object {$_.OwningProcess -eq $SQL_Proc.id} | `
Select-Object -Property `
@{Label ="Process_Name";e={$SQL_Proc.ProcessName}}, `
@{Label ="Local_Address";e={$_.LocalAddress + ":" + $_.LocalPort }}, `
@{Label ="Remote_Address";e={$_.RemoteAddress + ":" + $_.RemotePort}}, State | `
Format-Table
}
기본 출력 :
다음은 빠른 PowerShell 스크립트입니다 (아직 PowerShell에서 솔루션을 제공 한 사람이 없기 때문에))
참고 : 서버 (RDP 또는 PS Remoting 사용)에서 실행해야합니다. 올바르게 실행하면 정확한 포트 번호가 인쇄됩니다 .
cls
$id = (ps "sql*" | ? {$_.ProcessName -eq "sqlservr"}).Id
$id | % {
$strAllSQLConnections = netstat -ano | findstr $_
$port = $strAllSQLConnections | % { if($_ -match "0\.0\.0\.0:\d{2,5}") {$Matches[0]} }
$port = ($port -split ':')[1]
if ($port -gt 0) {Write-Host "An instance of Sql Server is listening on port: " $port}
}
코드를 수정해야 할 수도 있습니다.
HTH
참고 URL : https://stackoverflow.com/questions/12297475/how-to-find-sql-server-running-port
'code' 카테고리의 다른 글
presentModalViewController를 사용하여 투명한보기를 만드는 방법 (0) | 2020.10.06 |
---|---|
자바 스크립트 개체의 마지막 항목 가져 오기 (0) | 2020.10.06 |
EditText imeOptions를 actionNext로 설정해도 효과가 없습니다. (0) | 2020.10.06 |
sed가 일치하지 않는 줄을 무시하도록 함 (0) | 2020.10.06 |
README의 wiki 페이지에 대한 github 링크 (0) | 2020.10.05 |