SQL Server çalışan portu nasıl bulunur?


94

Evet bunu okudum MS SQL Server 2008 için bağlantı noktası nasıl bulunur?

şanssız.

telnet 1433

bağlantı başarısız oldu, bu yüzden başka bir bağlantı noktası belirtmeliyim.

Kullanmayı denedim

netstat -abn

ancak bu listede sqlservr.exe veya benzeri bir şey görmüyorum.

O limanı bulmak neden bu kadar zor? : /


Sql Sunucu Hizmetinin çalışıp çalışmadığını kontrol ettiniz mi?
Pilgerstorfer Franz

Yanıtlar:


151

Bunu dene:

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/


13
etkilenen 0 satırı döndürür
keram

1
master db kullanmayı
denediniz mi

4
0 satır döndürürse TCP / IP devre dışı bırakılır. SQL Server Configuration Manager'da TCP / IP etkinleştirildi.
Timo

Sadece eklemek için - son sürümlerde, UDP açıkken, Developer Edition'da TCP varsayılan olarak devre dışı bırakılmış gibi görünüyor.
Charly

76

Çok basit. taskmanager'dan sqlsrvr.exe PID'sini not edin ve ardından şu komutu çalıştırın:

netstat -ano | findstr *PID*

SQL sunucunuzun (bağlantı noktaları dahil) TCP ve UDP bağlantılarını gösterecektir standart TCP için 1433 ve UDP için 1434'tür

misal : görüntü açıklamasını buraya girin


3
Bu benim için "tersine" çalıştı: SSMS'de bağlandığım uzak makinenin bağlantı noktası numarasını (varsayılan olmayan) bulmak gerekiyordu.
leqid

57

Benim için çalışan bu:

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

40

Sql Sunucusu Yapılandırma Yöneticisi> SQL Sunucu Ağ Yapılandırması> Örneğiniz> TCP / IP> Özellikler'i başlatabilirseniz

görüntü açıklamasını buraya girin


8

"Netstat -a -b -n" (yükseltilmiş bir komut isteminden) çalıştırdıysanız ve "sqlservr.exe" yi hiç görmüyorsanız, SQL Server hizmetiniz çalışmıyor veya TCP / IP ağ kitaplığı devre dışı.

SQL Server Configuration Manager'ı çalıştırın (Başlat | Tüm Programlar | Microsoft SQL Server 2008 | Yapılandırma Araçları).

SQL Server Hizmetlerine gidin. Sağdaki bölmede SQL Server () öğesini arayın. Durdu mu? Eğer öyleyse, başlatın.

SQL Server Ağ Yapılandırmasına (veya uygun şekilde SQL Server Ağ Yapılandırmasına (32 bit)) ve ardından Protokollere gidin. Sağ taraftaki bölmede "TCP / IP" yi arayın. Devre dışı mı? Öyleyse, etkinleştirin ve ardından SQL Server hizmetini yeniden başlatın.

Örnek Kimliğinin varsayılan örnek için MSSQLSERVER olacağını unutmayın.

Ayrıca, bir istemciyi hizmete bağlamak için TCP / IP ağ kitaplığını etkinleştirmeniz gerekmediğini de lütfen unutmayın. İstemciler ayrıca Paylaşılan Bellek ağ kitaplığı (istemci aynı makinedeyse) veya Veri Bağlantısı ağ kitaplığı aracılığıyla da bağlanabilir.


3

Belki TCP / IP kullanmıyor

Hangi protokolleri kullandığını görmek için SQL Server Configuration Manager'a bir göz atın.


SQL Native Client yapılandırması? TCP / IP Etkinleştirildi. Ancak varsayılan bağlantı noktası 1433 olarak ayarlanmıştır: /
keram

@keram Hayır - bu müşteriler için. Sunucu yapılandırma yardımcı programını istiyorsunuz.
podiluska

bu yapılandırmayı nerede bulabilirim?
keram


2

Kuruluşumuzda MSSQL Sunucusuna erişimim yok, bu nedenle sistem tablolarına erişemiyorum.

Benim için işe yarayan şey:

  1. Wiresharksunucuya bağlantı açarken ağ trafiğini yakalayın (Yönetici olarak çalıştırın, Ağ Arayüzü öğesini seçin).
  2. IP adresini bul ping
  3. ile filtre ip.dst == x.x.x.x

Bağlantı noktası, sütunda infoşu formatta gösterilirsrc.port -> dst.port


2

Bu kullandığım başka bir komut dosyası:

-- 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

1

Protokolü şu şekilde etkinleştirmeyi deneyin: Yapılandırma Yöneticisi > SQL sunucusu Ağ Yapılandırması > MSSQLSERVER için Protokoller > TCP / IP özellikleri


1

bir kere dene:-

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

1

Lütfen cevabınızı detaylandırın.
Sert Wardhan

Bu bağlantı soruyu yanıtlamanıza yardımcı olsa da, bağlantının hayati kısımlarını alıp cevabınıza ekleyerek bu cevabı iyileştirebilirsiniz, bu, bağlantı değiştirilirse veya kaldırılırsa cevabınızın hala bir cevap olmasını sağlar :)
WhatsThePoint

0

SQL Server 2000 Programları | MS SQL Sunucusu | İstemci Ağ Yardımcı Programı | TCP_IP'yi ve ardından Özellikler'i seçin

SQL Server 2005 Programları | SQL Sunucusu | SQL Server Yapılandırma Yöneticisi | MSSQLSERVER için Protokoller'i seçin veya İstemci Protokollerini seçin ve TCP / IP'ye sağ tıklayın


-1

Belki de en iyi seçenek değil, ancak başka bir yol, Windows Kayıt Defterini ana makinede okumaktır, yükseltilmiş PowerShell isteminde aşağıdaki gibi bir şey yapabilirsiniz:

#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."

görüntü açıklamasını buraya girin Bu PowerShell komut dosyasını Ana Bilgisayar Sunucusunda (SQL örneğinizi / SQL Server kurulumunuzu barındıran) çalıştırdığınızdan emin olun; bu, önce SQL Server / Box / VM'ye RDP yapmanız ve ardından bu kodu çalıştırmanız gerektiği anlamına gelir.

HTH

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.