होस्ट से SSMS का उपयोग करके SQL एक्सप्रेस से VM को कॉन्फ़िगर करना


1

मैं अपने वीएम को SQL सर्वर 2008 R2 एक्सप्रेस के साथ कॉन्फ़िगर करने का प्रयास कर रहा हूं ताकि मैं केवल होस्ट मशीन के साथ SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके दूरस्थ रूप से एसक्यूएल तक पहुंच पाऊं।

वीएम कॉन्फ़िगरेशन

  1. विंडोज चल रहा है वेब सर्वर 2008 R2
  2. दो एनआईसी हैं:
    • Bridged तो यह इंटरनेट से जोड़ता है
    • केवल होस्ट करें ताकि मैं वर्चुअल नेटवर्क पर तेजी से संवाद कर सकूं
  3. SQL इंजन और ब्राउज़र सेवाएँ दोनों चल रही हैं
  4. मैंने SQL एक्सप्रेस के लिए TCP / IP प्रोटोकॉल सक्षम किया है, लेकिन किसी भी IP पते (अलग टैब) को कॉन्फ़िगर नहीं किया
  5. मैंने इसके लिए आने वाले फ़ायरवॉल नियम जोड़े हैं:
    • 1433 टीसीपी पोर्ट
    • 1434 यूडीपी बंदरगाह
  6. यदि मैं नेटवर्क कनेक्शन में देखता हूं तो मैं अपने दोनों एनआईसी को नेटवर्क से जुड़ा हुआ देखता हूं मैं bridged नेटवर्क को सेट कर सकता हूं कार्यस्थल लेकिन मैं केवल-होस्ट नेटवर्क के नेटवर्क प्रकार को बदल नहीं सकता। तो यह निर्धारित है जनता डिफ़ॉल्ट रूप से। मुझे यकीन नहीं है कि इसका इससे कोई लेना-देना है या नहीं लेकिन यह कैसा है।

HOST कॉन्फ़िगरेशन

मेरे होस्ट पर केवल एक चीज यह है कि मैंने अपने वीएम आईपी के लिए एक नाम रखा है। और मैंने होस्ट-केवल आईपी पते के साथ ऐसा किया है। मैंने अपने HOSTS फ़ाइल में एक प्रविष्टि जोड़ी है।

संकट

फिर मैं अपने मेजबान मशीन पर एसएसएमएस खोलता हूं और यदि मैं चयन करता हूं अधिक के लिए ब्राउज़ करें में सर्वर से कनेक्ट करें डायलॉग विंडो मैं वास्तव में अपने वीएम की एसक्यूएल आवृत्ति देख सकता हूं। लेकिन जब मैं इससे जुड़ने की कोशिश करता हूं, तो यही होता है जब मैं निम्नलिखित तीन तरीकों से जुड़ने की कोशिश करता हूं:

  • मशीन का नाम (मेरी HOSTS फ़ाइल IP रीमैपिंग करेगी) enter image description here

  • ब्रिज किए गए नेटवर्क आईपी पते enter image description here

  • होस्ट-केवल IP पता enter image description here

प्रश्न 1: मैं और क्या कॉन्फ़िगर कर सकता हूं ताकि मैं अपने वीएम की एसक्यूएल आवृत्ति तक पहुंच पाऊं? यदि संभव हो तो मैं इसे कॉन्फ़िगर करना भी चाहूंगा, ताकि मैं इसे केवल हॉट्स-ओनली नेटवर्क के माध्यम से एक्सेस कर सकूं और न कि ब्रिज के जरिए। लेकिन यह सिर्फ एक अतिरिक्त बोनस होगा अगर मैं इसे इस तरह से कॉन्फ़िगर कर सकता हूं।

प्रश्न 2: क्या मुझे वास्तव में चलाने के लिए SQL ब्राउज़र की आवश्यकता है क्योंकि जहाँ तक मुझे पता है कि यह केवल SQL उदाहरण को खोजे जाने योग्य है। अगर मुझे पता है कि SQL इंस्टेंस है क्या आप वहां मौजूद हैं और मुझे पता है कि यह पोर्ट 1433 का उपयोग करता है, क्या मैं बस इसका उपयोग करके कनेक्ट नहीं कर सकता सर्वर का नाम :

DATAVM\SQLEXPRESS,1433

संपादित करें

यह नेटस्टैट का परिणाम है: enter image description here

मैं भी भागा Portqry अपने VM पर मेरी SQL आवृत्ति की जाँच करने के लिए होस्ट पर। अगर मैं आईपी पते को पाटने की कोशिश करता हूँ तो मुझे वास्तव में SQL ब्राउज़र की प्रतिक्रिया मिलती है:

Starting portqry.exe -n 192.168.1.143 -e 1434 -p UDP ...

Querying target system called:
 192.168.1.143

Attempting to resolve IP address to a name...

IP address resolved to Datavm

querying...

UDP port 1434 (ms-sql-m service): LISTENING or FILTERED

Sending SQL Server query to UDP port 1434...

Server's response:

ServerName DATAVM
InstanceName SQLEXPRESS
IsClustered No
Version 10.50.1600.1
tcp 49159

जैसा कि मैं इस परिणाम में देख सकता हूं कि मेरा SQL उदाहरण वास्तव में TCP पोर्ट 49159 पर सुन रहा है।

इसलिए मैं SQL कॉन्फ़िगरेशन में गया और इस पोर्ट को 1433 में बदल दिया।

प्रश्न 3: क्या यह सामान्य है कि पोर्ट डिफ़ॉल्ट रूप से 1433 पर सेट नहीं था? क्या मुझे इसे वापस बदलकर 49159 करना चाहिए और अपने इनबाउंड फ़ायरवॉल नियम को इस पोर्ट या शूल्ड से गुज़ारने के लिए बदलना चाहिए जो अब मैं इसे 1433 पर छोड़ दूं?

पोर्ट को 1433 में बदलकर मैं अपने मेजबान मशीन एसएसएमएस से वीएम से जुड़ सकता हूं । लेकिन मैं केवल ब्रिज आईपी पते का उपयोग करके ऐसा कर सकता हूं।

जैसा कि मैं SQL प्रोटोकॉल में टीसीपी / आईपी सेटिंग्स को समझता हूं आईपी ​​पते सभी मशीन के आईपी पते को सूचीबद्ध करना चाहिए। मैं उनमें से 5 देख सकते हैं:

  1. एनआईसी वी 6 पते को पाटा
  2. एनआईसी वी 4 पते को पाटा
  3. लोकलहोस्ट वी 6 (:: 1)
  4. लोकलहोस्ट वी 4 (127.0.0.1)
  5. कुछ ? V6 पता जो न तो ब्रिडेड और न ही होस्ट-ओनली नेटवर्क से संबंधित है (fe80 :: 100: 7f: fffe% 12)

मैं यह मान रहा हूं कि यही कारण है कि मैं होस्ट-ओनली नेटवर्क का उपयोग करके कनेक्ट नहीं कर सकता ... लेकिन मैं अपने वीएम को कैसे कॉन्फ़िगर कर सकता हूं ताकि मैं सक्षम हो जाऊंगा (और संभवतः ब्रिज किए गए को अक्षम कर सकता हूं)?


कृपया जांचें कि क्या पोर्ट पर सुनी जा रही है netstat -a और आप आईपी पते (चरण चार) को देखने के लिए कॉन्फ़िगर कर सकते हैं कि क्या कुछ सुधार करता है
Tom Wijsman

@TomWijsman: मेरे संपादित प्रश्न की जाँच करें जहाँ मैंने संलग्न किया है netstat परिणाम और भी कुछ आंशिक समाधान जहां मैं कनेक्ट करने में सक्षम था। लेकिन नहीं जिस तरह से मैं चाहता था ... कृपया ऊपर पढ़ें।
Robert Koritnik

खुशी है कि आपने वास्तव में प्रगति की है, मैं वीएम नेटवर्क सेटिंग्स में कोई अच्छा नहीं हूं, लेकिन आप केवल उन विवरणों को जोड़ना चाहते हैं जो आपको (या अन्य) समाधान के लिए मिल सकते हैं। सौभाग्य! :)
Tom Wijsman

जवाबों:


0

यदि मैं सही तरीके से याद कर रहा हूं तो नामित उदाहरणों के लिए SQL ब्राउज़र आवश्यक है। आपका नामांकित उदाहरण एक अलग पोर्ट (जो आपने खोजा था) को सुनता है और SQL ब्राउज़र उस पोर्ट को प्रकट करेगा। आप SQL नेटवर्क कॉन्फ़िगरेशन का उपयोग करके किसी विशिष्ट पोर्ट पर सुनने के लिए अपने उदाहरण को कॉन्फ़िगर भी कर सकते हैं।

मैंने होस्ट-टू-वीएम नेटवर्क संचार को कुछ समय के लिए निराशाजनक माना है।

क्या आपने परीक्षण करने के लिए वीएम पर अपने फ़ायरवॉल को बंद करने की कोशिश की है? यह आमतौर पर पिन-पॉइंटिंग कनेक्टिविटी मुद्दों में चरण 1 है। कनेक्टिविटी मुद्दों के 90% + फ़ायरवॉल मुद्दे हैं।


इसके अलावा, SQL प्रक्रियाओं को फ़ायरवॉल अपवाद और विशिष्ट पोर्ट नहीं जोड़ें। इस तरह यह कोई फर्क नहीं पड़ता कि कौन सा पोर्ट अनुप्रयोग का उपयोग कर रहा है। आप फ़ायरवॉल को बता रहे हैं "यह ऐप शांत है, मैं इसे अपने बच्चों पर भरोसा करूंगा"।
MikeJansen

आप टिप्पणी के रूप में छोड़ने के बजाय इस जानकारी के साथ अपने उत्तर को संपादित करना चाह सकते हैं।
soandos

@ मायजैनसेन: वैसे तो ऐसा लगता है कि खासकर यदि आपका सर्वर है खुला यह बेहतर है SQL ब्राउजर न चलाएं क्योंकि यह सब के बाद की जरूरत नहीं है। आप हमेशा पोर्ट जानकारी का उपयोग करके कनेक्ट कर सकते हैं मशीननाम \ sql इंस्टेंस नाम, पोर्ट नंबर । यह सिर्फ काम करता है। और चूंकि एक ऐप SQL डेटाबेस (और आप डेवलपर) तक पहुंच रहा है, पोर्ट एक ज्ञात चर है। SQL ब्राउज़र चलाने से वह चर सार्वजनिक रूप से ज्ञात हो जाता है। और EXE को फ़ायरवॉल में जोड़ने के बजाय मैंने सिर्फ पोर्ट जोड़ा। यह निश्चित है कि कौन सा बेहतर है।
Robert Koritnik

@ मायकेजेन: और हाँ ... मैंने फ़ायरवॉल को बंद करने की कोशिश की। ऐसा लगता है कि मैं वर्चुअल होस्ट-ओनली नेटवर्क के माध्यम से कनेक्ट नहीं कर सकता ... मुझे लगता है कि अब एक अलग सवाल होना चाहिए क्योंकि यह मूल प्रश्न से आंशिक रूप से संबंधित है।
Robert Koritnik

@ मायकेजेनसेन: एफवाईआई: मैंने इसे स्वयं कॉन्फ़िगर करने में कामयाबी हासिल की है, जबकि मैंने एक प्रश्न पूछा है ServerFault भी। यहीं वह लिंक है वहाँ समाधान करने के लिए।
Robert Koritnik

0

उपाय

जैसा कि मैंने इसमें गहराई से खुदाई की, यह अधिक से अधिक लग रहा था कि यह SQL सर्वर कॉन्फ़िगरेशन की तुलना में नेटवर्किंग समस्या का अधिक है। और वो यह था।

मैंने नेटवर्किंग समस्या हल कर ली है और आप समाधान के बारे में पढ़ सकते हैं ServerFault । यह आपको वर्चुअल होस्ट-ओनली नेटवर्क को कॉन्फ़िगर करने में मदद करेगा, इसलिए यह बंद नहीं होगा क्योंकि विंडोज इसे डिफ़ॉल्ट रूप से सेट करता है।

लेकिन कुछ और बात है। और ये ** IP पते हैं जो SQL सर्वर आवृत्ति कॉन्फ़िगरेशन में TCP / IP प्रोटोकॉल में देख सकते हैं।

यहाँ समस्या यह है कि जब आप अपने SQL सर्वर इंस्टेंस को स्थापित करते हैं तो यह IP सूची केवल आबाद होती है। यदि आप अपने नेटवर्क एडेप्टर में कोई परिवर्तन करते हैं, तो वे परिवर्तन SQL सर्वर कॉन्फ़िगरेशन में दिखाई नहीं देंगे। यह है एक ज्ञात मुद्दा 2006 से और अभी तक हल नहीं हुआ है।

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

पर जाए:

HKEY_LOCAL_MACHINE
  SOFTWARE
    Microsoft
      Microsoft SQL Server
        MSSQL10_50.[InstanceName]
          MSSQLServer
            SuperSocketNetLib
              Tcp

आपको सभी आईपी पते मिलेंगे जिन्हें आप वहां कॉन्फ़िगर कर सकते हैं। चूंकि मुझे दो और पते जोड़ने थे जिन्हें मैंने IP2 निर्यात किया और फिर सहेजे गए * .reg फ़ाइल को संपादित किया:

  1. पहली पंक्ति को बदला और IP2 को IP में बदल दिया n (जहां n वर्तमान अधिकतम + 1 है)
  2. परिवर्तित IP पता और होस्ट-केवल नेटवर्क का v6 IP पता जोड़ा गया
  3. इन सभी पंक्तियों को कॉपी और पेस्ट किया
  4. बढ़ा हुआ आईपी n 1 से
  5. परिवर्तित IP पता और होस्ट-केवल नेटवर्क का v4 IP पता जोड़ा गया

फ़ाइल को सहेज लिया और इसे रजिस्ट्री संपादक में आयात किया। मैं रजिस्ट्री संपादक में दो और आईपी पते देख सकता हूं।

SQL सर्वर कॉन्फ़िगरेशन खोला और हाँ अब मेरे पास TCP / IP प्रोटोकॉल SQL उदाहरण कॉन्फ़िगरेशन में दो अतिरिक्त OP पते हैं जिन्हें मैं व्यक्तिगत रूप से कॉन्फ़िगर कर सकता हूं।

बस। काम करता है।

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