예이 글을 읽었습니다. MS SQL Server 2008의 포트를 찾는 방법은 무엇입니까?
불운.
텔넷 1433
연결 실패를 반환하므로 다른 포트를 지정해야합니다.
나는 사용하려고했다
netstat -abn
하지만이 목록에 sqlservr.exe 또는 이와 유사한 것이 표시되지 않습니다.
그 항구를 찾기가 왜 그렇게 어려운가요? : /
예이 글을 읽었습니다. 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/
관리자 권한 명령 프롬프트에서 "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 네트워크 라이브러리를 활성화 할 필요가 없습니다. 클라이언트는 또한 공유 메모리 네트워크 라이브러리 (클라이언트가 동일한 시스템에있는 경우) 또는 명명 된 파이프 네트워크 라이브러리를 통해 연결할 수 있습니다.
TCP / IP를 사용하지 않을 수도 있습니다.
SQL Server 구성 관리자를 살펴보고 사용중인 프로토콜을 확인하세요.
이것은 내가 사용하는 또 다른 스크립트입니다.
-- 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
한 번 시도 :-
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
또 다른 옵션은 Windows 레지스트리를 읽는 것입니다. PowerShell을 사용하여 다음과 같이 할 수 있습니다.
#Get SQL instance's Port number using Windows Registry:
$instName = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances[0]
$tcpPort = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instName\MSSQLServer\SuperSocketNetLib\Tcp").TcpPort
Write-Host The SQL Instance: `"$instName`" is listening on `"$tcpPort`" "TcpPort."
SQL 인스턴스 / SQL Server 설치를 호스팅하는 호스트 서버에서이 PowerShell 스크립트를 실행해야합니다. 즉, 먼저 SQL Server / Box / VM에 RDP를 연결 한 다음이 코드를 실행해야합니다.
HTH