MS SQL Server 2008 के लिए पोर्ट कैसे खोजें?


107

मैं अपने स्थानीय मशीन पर एमएस SQL ​​सर्वर 2008 चला रहा हूं। मुझे पता है कि डिफ़ॉल्ट पोर्ट 1433 है लेकिन कुछ इस पोर्ट पर कैसे नहीं सुन रहे हैं। एसक्यूएल एक एक्सप्रेस संस्करण है।

मैं पहले से ही लॉग, SQL सर्वर प्रबंधन स्टूडियो, रजिस्ट्री और पोर्ट को खोजने के लिए विस्तारित संग्रहीत कार्यविधि की कोशिश कर चुका हूं। लेकिन, मुझे यह नहीं मिला। क्रिप्या मेरि सहायता करे। धन्यवाद।


मैं उन अन्य संसाधनों के साथ प्रश्न को अपडेट कर रहा हूं जिन्हें मैंने देखा ताकि मेरे पास उनके बुकमार्क हों और अन्य लोग उनका उपयोग भी कर सकें। blogs.msdn.com/sql_protocols/archive/2008/11/05/... decipherinfosys.wordpress.com/2008/01/02/... dumbledad.wordpress.com/2008/07/09/...
royalghost

मैं उस पोर्ट को देखने के लिए TCP View का उपयोग कर रहा हूं, जिस पर वह चल रहा है। मुझे यह देखकर आश्चर्य हुआ कि सर्वर डिफ़ॉल्ट के रूप में स्थापित करने के बाद भी 1433 के बजाय एक डायनेमिक पोर्ट ले रहा है। मैंने एक्सप्रेस संस्करण को भी अन-इंस्टॉल किया और पूर्ण संस्करण स्थापित किया जिसके बाद केवल मैं sqlservr.exe: 5272 के रूप में प्रक्रिया देख सकता हूं। और, मेरी धारणा यह है कि यह बंदरगाह 5272 पर सुन रहा है।
शाहीघोस्त

जवाबों:


140

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

तुम पाओगे Default Port 1433

कनेक्शन के आधार पर, पोर्ट संख्या भिन्न हो सकती है।


मेरे कंप्यूटर पर, विंडोज 10 चलाने और SQL सर्वर 2012 एक्सप्रेस स्थापित होने के साथ, SQL सर्वर कॉन्फ़िगरेशन प्रबंधक विंडोज स्टार्ट मेनू में सूचीबद्ध नहीं है, लेकिन सेवा और एप्लिकेशन समूह के तहत कंप्यूटर प्रबंधन MMC स्नैप-इन में पाया जा सकता है । डायनेमिक पोर्ट 'SQL मूल क्लाइंट कॉन्फ़िगरेशन' आइटम (जो मेरे लिए "11.0 संस्करण" है) के अंतर्गत नहीं है, लेकिन SQL सर्वर नेटवर्क कॉन्फ़िगरेशन आइटम (और टीसीपी / आईपी प्रोटोकॉल गुण विंडो के आईपी ​​पते टैब पर) के नीचे है टीसीपी डायनेमिक पोर्ट की सेटिंग में बहुत नीचे )।
केनी एविट

यह उत्तर क्लाइंट पोर्ट को संदर्भित करता है, सर्वर पोर्ट को नहीं जो मूल प्रश्न में पूछा जा रहा है। नीचे @ भाइयों 28 से उत्तर अधिक सटीक है।
स्लोगमिस्टर एक्स्ट्राऑर्डिनेयर

52

तुम भी एक के साथ देख सकते हैं

netstat -abn

यह पोर्ट को संबंधित एप्लिकेशन के साथ देता है जो उन्हें खुला रखता है।

संपादित करें : या TCPView


क्या आप मुझे बता सकते हैं कि एमएस एसक्यूएल सर्वर 2008 को एक एप्लीकेशन के रूप में किस नाम से जाना जाता है?
रॉयलघोस्ट

2
यह sqlservr.exe होना चाहिए (मेरे पास हालांकि जांचने के लिए एक नहीं है)।
rslite

1
इसने मेरे लिए काम किया। पोर्ट संख्या [sqlservr.exe] के ऊपर की रेखा पर है ।
ज़ेन

मैंने इसे Ssms.exe
ThiagoPonte

49

यहाँ 5 मेथोड मुझे मिले हैं:

  • विधि 1: SQL सर्वर कॉन्फ़िगरेशन प्रबंधक
  • विधि 2: विंडोज इवेंट व्यूअर
  • विधि 3: SQL सर्वर त्रुटि लॉग
  • विधि 4: sysinos_exec_connections DMV
  • विधि 5: xp_instance_regread का उपयोग करके रजिस्ट्री पढ़ना

विधि 4: sysinos_exec_connections DMV
मुझे लगता है कि यह लगभग सबसे आसान तरीका है ...
डीएमवी रिटर्न सर्वर राज्य जो SQL सर्वर इंस्टेंस की निगरानी के लिए उपयोग किया जा सकता है। हम पोर्ट नंबर SQL सर्वर इंस्टेंस T-SQL कोड का उपयोग करने पर सुन रहे हैं पहचानने के लिए sysinos_exec_connections DMV का उपयोग कर सकते हैं :

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 सर्वर कॉन्फ़िगरेशन प्रबंधक

चरण 1. प्रारंभ> सभी कार्यक्रम> Microsoft SQL सर्वर 2012> कॉन्फ़िगरेशन उपकरण> SQL सर्वर कॉन्फ़िगरेशन प्रबंधक पर क्लिक करें

चरण 2. SQL सर्वर कॉन्फ़िगरेशन प्रबंधक> SQL सर्वर नेटवर्क कॉन्फ़िगरेशन> प्रोटोकॉल के लिए जाएं

चरण 3. टीसीपी / आईपी पर राइट क्लिक करें और गुण चुनें

यहां छवि विवरण दर्ज करें

चरण 4. टीसीपी / आईपी गुण संवाद बॉक्स में, आईपी पते टैब पर जाएं और आईपीएएल समूह पर स्क्रॉल करें।

यहां छवि विवरण दर्ज करें

यदि SQL सर्वर यदि किसी स्थिर पोर्ट पर चलने के लिए कॉन्फ़िगर किया गया है तो यह TCP पोर्ट टेक्स्टबॉक्स में उपलब्ध होगा, और यदि इसे डायनेमिक पोर्ट पर कॉन्फ़िगर किया गया है, तो वर्तमान पोर्ट TCP डायनेमिक पोर्ट्स टेक्स्टबॉक्स में उपलब्ध होगा। यहां मेरा उदाहरण पोर्ट नंबर 61499 पर सुना जा रहा है।

अन्य तरीके जो आप यहाँ पा सकते हैं: http://sqlandme.com/2013/05/01/sql-server-finding-tcp-port-number-sql-instance-is-listening-on/


1
मेरे लिए काम किया। मैंने TCP / IP गुणों की कोशिश की SQL SQL मूल क्लाइंट कॉन्फ़िगरेशन और यह डिफ़ॉल्ट रूप से 1433 लौट रहा था। लेकिन जब मैंने SQL सर्वर नेटवर्क कॉन्फ़िगरेशन से TCP डायनेमिक पोर्ट की जाँच की। मुझे पता चला कि बंदरगाह 67244 है। और उसके बाद मैं सफलतापूर्वक उस बंदरगाह से जुड़ सका। +1
रूबेन

17

मैं इस पर आया था क्योंकि मुझे बस एक दूरस्थ कनेक्शन बनाने में समस्या थी और समझ नहीं पा रहा था कि फ़ायरवॉल में 1433 पोर्ट स्थापित करना काम क्यों नहीं कर रहा है। मेरे पास अब पूरी तस्वीर है, इसलिए मैंने सोचा कि मुझे साझा करना चाहिए।

सबसे पहले SQLEXPRESS के लिए प्रोटोकॉल के तहत SQL सर्वर कॉन्फ़िगरेशन प्रबंधक का उपयोग करके "TCP / IP" को सक्षम करना होगा!

जब एक नामित उदाहरण का उपयोग किया जाता है ("SQLExpress" इस मामले में), यह एक गतिशील पोर्ट पर सुनेंगे। इस गतिशील पोर्ट को खोजने के लिए आपके पास कुछ विकल्प हैं; कुछ नाम है:

  • ERRORLOGमें स्थित SQL सर्वर की जाँच '{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

बेशक, इस टीसीपी पोर्ट को फ़ायरवॉल में अनुमति देना और इसमें पास होकर एक रिमोट कनेक्शन बनाना: "x.x.x.x,51118" (जहां xxxx सर्वर आईपी है) पहले से ही इस बिंदु पर हल करता है।

लेकिन तब मैं उदाहरण के नाम से गुजरकर दूर से कनेक्ट करना चाहता था (जैसे: x.x.x.x\SQLExpress । यह तब होता है जब SQL ब्राउज़र सेवा चलन में आती है। यह वह इकाई है जो 51118 पोर्ट में इंस्टेंस नाम को हल करती है। SQL ब्राउज़र सेवा UDP पोर्ट 1434 (मानक और स्थिर) पर सुनती है, इसलिए मुझे सर्वर के फ़ायरवॉल में भी इसकी अनुमति देनी पड़ी।

थोड़ा वास्तविक उत्तर देने के लिए: यदि कोई अन्य डायनेमिक पोर्ट पसंद नहीं करता है और अपने SQL सर्वर इंस्टेंस के लिए एक स्थिर पोर्ट चाहता है, तो उसे इस लिंक को आज़माना चाहिए ।


1
SQL ब्राउज़र सेवा के लिए +1। यह महत्वपूर्ण है कि एसक्यूएल एक्सप्रेस पोर्ट नंबरों के साथ कैसे काम करती है
पालतू जानवर

11

नीचे की तरह एक पंक्ति के लिए ERROLOG लॉग में। यदि आप यह नहीं देखते हैं कि SQL सर्वर रिमोट एक्सेस के लिए सक्षम नहीं है, या यह सिर्फ TCP के माध्यम से नहीं है। आप इसे SQL सर्वर कॉन्फ़िगरेशन प्रबंधक के माध्यम से बदल सकते हैं।

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

मुझे वह लॉग दिखाई नहीं देता है, लेकिन कनेक्शन के तहत SQL सर्वर प्रबंधन स्टूडियो पर "इस सर्वर से दूरस्थ कनेक्शन की अनुमति दें" की जाँच की जाती है। इसलिए, मेरी समझ यह है कि दूरस्थ कनेक्शन की अनुमति है।
रॉयलघोस्ट

@ ट्रॉयल: 'रिमोट कनेक्शन की अनुमति दें' के अलावा आपको टीसीपी प्रोटोकॉल को भी सक्षम करना होगा। अभी सर्वर शायद केवल NP
Remus Rusanu

SQL क्वेरी के माध्यम से लॉग पढ़ने देता है @morteza से नीचे उत्तर देखें xp_readerrorlog 0, 1, N'Server is listening on'
Tilo

8

मैंने SQLEXPRESS2008 के लिए प्रोटोकॉल के तहत SQL सर्वर कॉन्फ़िगरेशन प्रबंधक का उपयोग करके टीसीपी / आईपी को सक्षम करके समस्या को हल किया, मैंने सेवा को फिर से शुरू किया और अब ERRORLOG फ़ाइल में "सर्वर सुन रहा है" दिखाता है


8

इसे आज़माएँ (इसके लिए पहुँच आवश्यक है sys.dm_exec_connections):

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

3
FYI करें: यदि SQL सर्वर का कोई खुला कनेक्शन नहीं है, तो यह संभवतः कुछ भी नहीं दिखाएगा।
तिलो

6
USE master
GO
xp_readerrorlog 0, 1, N'Server is listening on', 'any', NULL, NULL, N'asc' 
GO

[पहचान SQL सर्वर त्रुटि लॉग को पढ़कर SQL सर्वर डेटाबेस इंजन के नामांकित उदाहरण द्वारा प्रयुक्त पोर्ट की पहचान]


1
धन्यवाद अच्छा टिप मोर्टेज़ा, मुझे SQL2012 पर उपरोक्त का उपयोग करने में एक त्रुटि मिलती है, लेकिन मेरी आवश्यकताओं के लिए निम्नलिखित पर्याप्तियां हैं: XP_READERRORLOG 0, 1, N'Server सुन रहा है '
Mattpm

कॉपी करें जो आपकी क्वेरी के साथ त्रुटि प्राप्त करता है लेकिन यह काम करता है, xp_readerrorlog 0, 1, N'Server is listening on'
तिलो

6

आप इस दो आदेशों का उपयोग कर सकते हैं: tasklistऔरnetstat -oan

Tasklist.exeकी तरह है, taskmgr.exeलेकिन पाठ मोड में।

के साथ tasklist.exeया taskmgr.exeआप एक पीआईडी ​​प्राप्त कर सकते हैंsqlservr.exe

इसके साथ netstat -oan, यह एक कनेक्शन पीआईडी ​​दिखाता है, और आप इसे फ़िल्टर कर सकते हैं।

उदाहरण:

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

इस उदाहरण में, SQLServer पोर्ट 1280 है

इससे निकाला गया: http://www.sysadmit.com/2016/03/mssql-ver-puerto-de-una-instancia.html


5

मैं 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

यह सुनिश्चित नहीं किया गया कि इसे क्यों अस्वीकृत किया गया, यह तत्काल उत्तर नहीं देता है लेकिन यह आपको उत्तर के साथ-साथ बहुत कुछ देता है। इसे उपयोगी प्रश्नों की मेरी सूची में जोड़ना।
टोनी

क्वेरी को बहुत पसंद करने पर, यह भी प्रतीत होता है कि कोई कनेक्शन खुला / स्थापित नहीं है या नहीं।
तिलो

4

यह एक पोर्ट स्कैन के माध्यम से भी किया जा सकता है, जो एकमात्र संभव तरीका है यदि आपके पास दूरस्थ सर्वर तक व्यवस्थापक पहुंच नहीं है।

"तीव्र टीसीपी स्कैन" करने के लिए Nmap ( http://nmap.org/zenmap/ ) का उपयोग करना आपको सर्वर पर सभी उदाहरणों के लिए इस तरह से परिणाम देगा :

[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

महत्वपूर्ण नोट: क्वेरी विश्लेषक या एमएस एसक्यूएल सर्वर मैनेजमेंट स्टूडियो के साथ परीक्षण करने के लिए, आपको अपने सर्वर का नाम और पोर्ट को अलग-अलग बनाना होगा, जो सामान्य रूप से एक पोर्ट के लिए, एक कोलोन के बजाय अल्पविराम का उपयोग करके पोर्ट से कनेक्ट होगा ।

  • प्रबंधन स्टूडियो सर्वर का नाम: 10.0.0.1,49843
  • संबंध तार: Data Source=10.0.0.1,49843

तथापि

  • JDBC कनेक्शन स्ट्रिंग: jdbc:microsoft:sqlserver://10.0.0.1:49843;DatabaseName=DATABASE

1

यह SQL Server 2005 - 2012 के लिए काम करता है। एप्लिकेशन के तहत एरर लॉग में इवेंट आईडी = 26022 देखें। यह sql सर्वर के पोर्ट नंबर के साथ-साथ IP पते को एक्सेस करने की अनुमति देगा।


1

ऊपर सूचीबद्ध के अलावा, मुझे दूर से कनेक्ट करने के लिए SQLExpress के लिए टीसीपी और यूडीपी दोनों बंदरगाहों को सक्षम करना था। क्योंकि मेरे पास अपनी विकास मशीन पर तीन अलग-अलग उदाहरण हैं, मैं 1430-1435टीसीपी और यूडीपी दोनों के लिए सक्षम हूं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.