"लेकिन क्यों...?"
क्यों . में रुचि रखने वालों के लिए SQL सर्वर प्रबंधन स्टूडियो (SSMS) servername\instance
से जुड़ सकता है जबकि अन्य एप्लिकेशन (जैसे हमारे pyodbc ऐप्स) नहीं कर सकते, ऐसा इसलिए है क्योंकि SSMS विंडोज़ रजिस्ट्री में पोर्ट नंबरों की एक MRU (सबसे हाल ही में प्रयुक्त) सूची रखता है
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect
प्रत्येक एमआरयू प्रविष्टि (रजिस्ट्री मूल्य) कुछ इस तरह दिखती है:
Name: PANORAMA\SQLEXPRESS
Type: REG_SZ
Data: -1006030326:tcp:PANORAMA,52865
एक बार जब SSMS दूरस्थ मशीन पर SQL ब्राउज़र सेवा के माध्यम से इंस्टेंस नाम से सफलतापूर्वक कनेक्ट हो जाता है, तो यह इंस्टेंस नाम से कनेक्ट होना जारी रख सकता है, भले ही SQL ब्राउज़र अब दूरस्थ मशीन पर नहीं चल रहा हो, बशर्ते कि पोर्ट नंबर नहीं बदला हो। ऐसे ऐप्स जो इस MRU सूची का उपयोग नहीं करते हैं (जैसे हमारे pyodbc ऐप) को हर बार जब वे इंस्टेंस नाम से कनेक्ट करना चाहते हैं तो दूरस्थ मशीन पर SQL ब्राउज़र सेवा चलाने की आवश्यकता होती है।
सबसे आम परिदृश्य:
- मैं
YOUR-PC\SQLEXPRESS
से जुड़ना चाहता हूं . मैं इसे SSMS सेMY-PC
. पर करने का प्रयास करता हूं , लेकिन यह काम नहीं करता है क्योंकि SQL ब्राउज़र कोYOUR-PC
पर "मैन्युअल" पर सेट "स्टार्ट मोड" के साथ स्थापित किया गया था । - मैं आपसे
YOUR-PC
. पर SQL ब्राउज़र सेवा प्रारंभ करने के लिए कहता हूँ , और आप कृपया अनुपालन करते हैं, लेकिन आप बस सेवा शुरू करते हैं और "स्टार्ट मोड" सेटिंग को "स्वचालित" में बदलना भूल जाते हैं। - मैं SSMS के माध्यम से कनेक्ट करने में सक्षम हूं (जो
YOUR-PC\SQLEXPRESS
को कैश करता है) एमआरयू में बंदरगाह)। मेरा पायथन ऐप भी कनेक्ट हो सकता है। - अगली बार के बाद
YOUR-PC
पुनरारंभ होता है, मैं एसएसएमएस (एमआरयू के माध्यम से) के माध्यम से कनेक्ट कर सकता हूं लेकिन मेरा पायथन ऐप नहीं कर सकता (क्योंकि SQL ब्राउज़र सेवा अबYOUR-PC
पर नहीं चल रही है )।