Bagaimana menemukan port yang menjalankan SQL Server?


94

Ya saya membaca ini Bagaimana menemukan port untuk MS SQL Server 2008?

tidak beruntung.

telnet 1433

koneksi kembali gagal, jadi saya harus menentukan port lain.

Saya mencoba menggunakan

netstat -abn

tapi saya tidak melihat sqlservr.exe atau yang serupa di daftar ini.

Mengapa begitu sulit menemukan port itu? : /


Apakah Anda memeriksa apakah Layanan Server Sql sedang berjalan?
Pilgerstorfer Franz

Jawaban:



76

sangat sederhana. catat PID sqlsrvr.exe dari taskmanager lalu jalankan perintah ini:

netstat -ano | findstr *PID*

itu akan menunjukkan koneksi TCP dan UDP dari server SQL Anda (termasuk port) standar 1433 untuk TCP dan 1434 untuk UDP

contoh: masukkan deskripsi gambar di sini


3
Ini bekerja untuk saya "secara terbalik": diperlukan untuk menemukan nomor port (non-default) dari mesin jarak jauh yang saya sambungkan ke dalam SSMS.
leqid

57

Ini adalah salah satu yang berhasil untuk saya:

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

39

Jika Anda dapat memulai Manajer Konfigurasi Server Sql> Konfigurasi Jaringan Server SQL> Contoh Anda> TCP / IP> Properti

masukkan deskripsi gambar di sini


8

Jika Anda telah menjalankan "netstat -a -b -n" (dari prompt perintah yang ditinggikan) dan Anda tidak melihat "sqlservr.exe" sama sekali, maka layanan SQL Server Anda tidak berjalan atau perpustakaan jaringan TCP / IP-nya tidak berfungsi cacat.

Jalankan Manajer Konfigurasi Server SQL (Mulai | Semua Program | Microsoft SQL Server 2008 | Alat Konfigurasi).

Arahkan ke Layanan SQL Server. Di panel sebelah kanan, cari SQL Server (). Apakah itu dihentikan? Jika demikian, mulailah.

Arahkan ke Konfigurasi Jaringan SQL Server (atau Konfigurasi Jaringan SQL Server (32-bit) yang sesuai) lalu Protokol untuk. Di panel sebelah kanan, cari "TCP / IP". Apakah itu dinonaktifkan? Jika demikian, aktifkan, lalu mulai ulang layanan SQL Server.

Perhatikan bahwa ID Instance dia akan menjadi MSSQLSERVER untuk instance default.

Harap perhatikan juga bahwa Anda tidak harus mengaktifkan pustaka jaringan TCP / IP untuk menghubungkan klien ke layanan. Klien juga dapat menyambung melalui perpustakaan jaringan Memori Bersama (jika klien pada mesin yang sama) atau perpustakaan jaringan Pipa Bernama.



2

Di perusahaan kami, saya tidak memiliki akses ke MSSQL Server, jadi saya tidak dapat mengakses tabel sistem.

Apa yang berhasil untuk saya adalah:

  1. menangkap lalu lintas jaringan Wireshark(jalankan sebagai Administrator, pilih Antarmuka Jaringan), saat membuka koneksi ke server.
  2. Temukan alamat ip dengan ping
  3. filter dengan ip.dst == x.x.x.x

Porta ditampilkan di kolom infodalam formatsrc.port -> dst.port


2

Ini adalah skrip lain yang saya gunakan:

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

Coba aktifkan protokol dengan: Configuration Manger > SQL server Network Configuration > Protocols for MSSQLSERVER > properti TCP / IP


1

coba sekali: -

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

0

Program SQL Server 2000 | MS SQL Server | Utilitas Jaringan Klien | Pilih TCP_IP lalu Properties

Program SQL Server 2005 | SQL Server | Manajer konfigurasi SQL Server | Pilih Protocols for MSSQLSERVER atau pilih Client Protocols dan klik kanan pada TCP / IP


0

Tolong uraikan jawaban Anda.
Harsh Wardhan

Meskipun tautan ini dapat membantu jawaban Anda atas pertanyaan, Anda dapat meningkatkan jawaban ini dengan mengambil bagian penting dari tautan dan memasukkannya ke dalam jawaban Anda, ini memastikan jawaban Anda masih merupakan jawaban jika tautan diubah atau dihapus :)
WhatsThePoint

0

Pilihan lainnya adalah membaca Registry Windows. Menggunakan PowerShell Anda dapat melakukan sesuatu seperti ini:

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

masukkan deskripsi gambar di sini Pastikan untuk menjalankan skrip PowerShell ini di Server Host (yang menghosting instans SQL / instalasi SQL Server Anda), yang berarti Anda harus RDP terlebih dahulu ke SQL Server / Box / VM, lalu jalankan kode ini.

HTH

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.