मैं SQL सर्वर 2014 स्थानीय रूप से स्थापित इंस्टेंस के साथ एक ही मुद्दा था। का उपयोग कर कनेक्ट FQDN\InstanceName
असफल होता है, जबकि केवल मेरे का उपयोग कर जोड़ने के hostname\InstanceName
लिए काम किया। उदाहरण के लिए: कनेक्टेड mycomputername\sql2014
काम कर रहा है, लेकिन उपयोग कर रहा हैmycomputername.mydomain.org\sql2014
नहीं किया। DNS सही ढंग से हल हो गया, SQL कॉन्फ़िगरेशन प्रबंधक के भीतर TCP / IP सक्षम किया गया था, Windows फ़ायरवॉल नियम जोड़े गए (और फिर यह सुनिश्चित करने के लिए परीक्षण के लिए फ़ायरवॉल बंद कर दिया गया कि यह कुछ भी अवरुद्ध नहीं कर रहा था), लेकिन उनमें से किसी ने भी समस्या को ठीक नहीं किया।
अंत में, मुझे एसक्यूएल सर्वर पर " एसक्यूएल सर्वर ब्राउजर " सेवा शुरू करनी थी और इससे कनेक्टिविटी की समस्या ठीक हो गई।
मुझे कभी यह एहसास नहीं हुआ कि SQL सर्वर ब्राउज़र सेवा वास्तव में कनेक्शन बनाने में SQL सर्वर की सहायता करती थी; मैं इस धारणा के तहत था कि यह ड्रॉपडाउन को पॉप्युलेट करने में मदद करता है जब आपने कनेक्ट करने के लिए "अधिक ब्राउज़ करें" सर्वर पर क्लिक किया था, लेकिन यह वास्तव में सही पोर्ट के साथ क्लाइंट अनुरोधों को संरेखित करने में मदद करता है # उपयोग करने के लिए, यदि पोर्ट # स्पष्ट रूप से असाइन नहीं किया गया है (समान कैसे वेबसाइट बाइंडिंग एक IIS वेब सर्वर पर एक ही समस्या को कम करने में मदद करता है जो कई वेबसाइटों को होस्ट करता है)।
यह कनेक्ट आइटम है जो मुझे SQL सर्वर ब्राउज़र सेवा के बारे में सुराग देता है: https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-use-fqdn-machine- नाम
- जब आप सर्वर नाम के रूप में wstst05 \ sqlexpress का उपयोग करते हैं, तो क्लाइंट कोड उदाहरण के नाम से मशीन का नाम अलग करता है और wstst05 की तुलना नेटबायोस नाम के साथ की जाती है। मुझे उनके मिलान के लिए कोई समस्या नहीं दिख रही है और कनेक्शन को स्थानीय माना जाता है। वहां से, हम SQL ब्राउज़र से संपर्क किए बिना आवश्यक जानकारी प्राप्त करते हैं और बिना किसी समस्या के साझा मेमोरी के माध्यम से SQL उदाहरण से कनेक्ट करते हैं।
- जब आप wstst05.capatest.local \ sqlexpress का उपयोग करते हैं, तो क्लाइंट कोड netbios नाम (wstst05) के नाम (wstst05.capatest.local) की तुलना में विफल रहता है और कनेक्शन को "दूरस्थ" मानता है। यह डिजाइन द्वारा है और हम निश्चित रूप से भविष्य में इसमें सुधार करने पर विचार करेंगे। वैसे भी, कनेक्शन रिमोट और इस तथ्य पर विचार करने के कारण कि यह एक नामांकित उदाहरण है, क्लाइंट तय करता है कि उसे नाम समाधान के लिए SQLBrowser का उपयोग करने की आवश्यकता है। यह wstst05.capatest.local (UDP पोर्ट 1434) पर SQL ब्राउज़र से संपर्क करने का प्रयास करता है और स्पष्ट रूप से वह भाग विफल हो जाता है। इसलिए आपको जो त्रुटि मिलती है।
TechNet से "SQL सर्वर ब्राउज़र" सेवा का कारण (मेरे द्वारा जोर दिया गया): https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx
"SQL सर्वर ब्राउज़र का उपयोग करके" अनुभाग:
यदि SQL सर्वर ब्राउज़र सेवा नहीं चल रही है, तो आप सही पोर्ट संख्या या नामित पाइप प्रदान करते हैं, तो आप अभी भी SQL सर्वर से कनेक्ट करने में सक्षम हैं। उदाहरण के लिए, यदि आप 1433 पोर्ट पर चल रहे हैं, तो आप TCP / IP के साथ SQL सर्वर के डिफ़ॉल्ट उदाहरण से कनेक्ट कर सकते हैं। हालाँकि, यदि SQL सर्वर ब्राउज़र सेवा नहीं चल रही है, तो निम्न कनेक्शन काम नहीं करते हैं :
- कोई भी घटक जो सभी मापदंडों (जैसे टीसीपी / आईपी पोर्ट या नामित पाइप) को पूरी तरह से निर्दिष्ट किए बिना नामित उदाहरण से कनेक्ट करने का प्रयास करता है ।
- कोई भी घटक जो सर्वर \ आवृत्ति की जानकारी उत्पन्न करता है या पास करता है जिसे बाद में पुन: कनेक्ट करने के लिए अन्य घटकों द्वारा उपयोग किया जा सकता है।
- पोर्ट नंबर या पाइप प्रदान किए बिना एक नामित उदाहरण से कनेक्ट करना ।
- टीसीपी / आईपी पोर्ट 1433 का उपयोग नहीं करने पर एक नामित उदाहरण या डिफ़ॉल्ट उदाहरण के लिए डीएसी।
- OLAP पुनर्निर्देशक सेवा।
- SQL सर्वर प्रबंधन स्टूडियो, एंटरप्राइज़ प्रबंधक, या क्वेरी विश्लेषक में सर्वर की गणना।
यदि आप एक क्लाइंट-सर्वर परिदृश्य में SQL सर्वर का उपयोग कर रहे हैं (उदाहरण के लिए, जब आपका एप्लिकेशन किसी नेटवर्क पर SQL सर्वर तक पहुंच रहा है), यदि आप SQL सर्वर ब्राउज़र सेवा को रोकते या अक्षम करते हैं , तो आपको प्रत्येक उदाहरण के लिए एक विशिष्ट पोर्ट नंबर निर्दिष्ट करना होगा और हमेशा उस पोर्ट नंबर का उपयोग करने के लिए अपना क्लाइंट एप्लिकेशन कोड लिखें। इस दृष्टिकोण में निम्नलिखित समस्याएं हैं :
- यह सुनिश्चित करने के लिए कि यह उचित पोर्ट से कनेक्ट हो रहा है, आपको क्लाइंट एप्लिकेशन कोड को अपडेट और रखरखाव करना चाहिए।
- प्रत्येक आवृत्ति के लिए आपके द्वारा चुना गया पोर्ट सर्वर पर किसी अन्य सेवा या एप्लिकेशन द्वारा उपयोग किया जा सकता है, जिससे SQL सर्वर का उदाहरण अनुपलब्ध है।
और "कैसे SQL सर्वर ब्राउज़र वर्क्स" अनुभाग से एक ही लेख से अधिक जानकारी:
चूंकि SQL Server का केवल एक उदाहरण पोर्ट या पाइप का उपयोग कर सकता है, अलग-अलग पोर्ट नंबर और पाइप के नाम एसक्यूएल सर्वर एक्सप्रेस सहित नामित उदाहरणों के लिए असाइन किए गए हैं। डिफ़ॉल्ट रूप से, सक्षम होने पर, दोनों नामित नाम और SQL सर्वर एक्सप्रेस को डायनेमिक पोर्ट का उपयोग करने के लिए कॉन्फ़िगर किया गया है, अर्थात SQL पोर्ट प्रारंभ होने पर एक उपलब्ध पोर्ट असाइन किया गया है। यदि आप चाहें, तो एक विशिष्ट पोर्ट SQL सर्वर के उदाहरण के लिए असाइन किया जा सकता है। कनेक्ट करते समय, क्लाइंट एक विशिष्ट पोर्ट निर्दिष्ट कर सकते हैं; लेकिन यदि पोर्ट डायनामिक रूप से असाइन किया गया है, तो पोर्ट नंबर कभी भी SQL सर्वर के पुनरारंभ होने पर बदल सकता है, इसलिए सही पोर्ट नंबर क्लाइंट के लिए अज्ञात है। ... जब SQL सर्वर क्लाइंट SQL सर्वर संसाधनों का अनुरोध करते हैं, क्लाइंट नेटवर्क लाइब्रेरी पोर्ट 1434 का उपयोग करके सर्वर को एक यूडीपी संदेश भेजता है। SQL सर्वर ब्राउज़र टीसीपी / आईपी पोर्ट या अनुरोधित उदाहरण के नामित पाइप के साथ प्रतिक्रिया करता है।