मुझे यह SQL सर्वर ODBC कनेक्शन कैसे काम कर सकता है?


30

नोट: मैंने स्पष्ट रूप से काल्पनिक लोगों के लिए सर्वर के नाम और आईपी को बदल दिया है।

यहाँ क्या हो रहा है। मुझे एक सर्वर मिला है, जिसे मैं MYSERVERMicrosoft SQL Server Express 2005 चला रहा हूं । इस सर्वर पर ही, मुझे एक ODBC कनेक्शन मिला है, जो खुद को इंगित करता है, और यह पहले से ही पूरी तरह से काम करता है। मैं SQL सर्वर प्रमाणीकरण (विंडोज प्रमाणीकरण नहीं) का उपयोग कर लॉग इन करता हूं, और इसे इस तरह सेट किया जाता है:

अच्छे ODBC कनेक्शन की छवि

जैसा मैंने कहा, वह काम करता है। लेकिन अगला, मुझे एक और कंप्यूटर मिला है जो इंट्रानेट पर पूरी तरह से अलग डोमेन / नहीं है, जिसे MYSERVER पर होस्ट किए गए इसी SQL सर्वर तक पहुंचने की आवश्यकता है। क्योंकि यह एक अलग डोमेन पर है, इसलिए यह "MYSERVER" नाम को नहीं पहचानता है; मुझे इसे MYSERVER के आईपी पते पर इंगित करना होगा, जो हम कहेंगे कि 123.456.789.012 है। लेकिन ODBC कनेक्शन वहां काम नहीं करता है। मैंने इसे इस तरह स्थापित करने की कोशिश की:

खराब ओडीबीसी कनेक्शन की छवि

यह काम नहीं करता है। जब मैं उपयोगकर्ता नाम और पासवर्ड डालता हूं और अगला दबाता हूं, तो यह 10 से 20 सेकंड के लिए अच्छा होता है, और फिर अंत में निम्नलिखित त्रुटि के साथ वापस आता है:

Connection failed:
SQLState: '01000'
SQL Server Error: 1326
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.

अगर मैं भी यही कोशिश करूं, लेकिन "सर्वर" 123.456.789.012\SQLEXPRESSको सिर्फ सादे पुराने से बदल दूं 123.456.789.012, तो मुझे एक अलग त्रुटि मिलती है:

Connection failed:
SQLState: '01000'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()).
Connection failed:
SQLState: '08001'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.

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

telnet 123.456.789.012 1433

... कमांड लाइन से सब मुझे चाहिए। इसलिए मुझे यकीन नहीं है कि मुझे क्या करना है। मुझे पता है कि SQL सर्वर मौजूद है, काम करता है, और ODBC कनेक्शन ठीक से सेट किया जा सकता है; मुझे यकीन नहीं है कि यह क्या है मुझे मेरी कनेक्शन सेटिंग्स में गलत मिला है जो इन त्रुटियों को फेंक रहा है। मेरे द्वारा सूचीबद्ध बाद की त्रुटि के आधार पर, ऐसा लगेगा कि यह सर्वर से जुड़ सकता है, लेकिन बस उदाहरण नहीं मिल सकता है (क्योंकि मैंने उस समय एक को निर्दिष्ट नहीं किया था)। तो क्या इसका मतलब यह है कि मुझे सिर्फ एक अलग नाम के साथ आईपी निर्दिष्ट करने के लिए कुछ अलग वाक्यविन्यास का उपयोग करने की आवश्यकता है? मैं क्या करूं? अग्रिम में धन्यवाद।

जवाबों:


18

SQL सर्वर 2005 के लिए नामित पाइप और TCIP प्रोटोकॉल डिफ़ॉल्ट रूप से अक्षम हैं। क्या आपने उन्हें "SQL सर्वर कॉन्फ़िगरेशन प्रबंधक" के तहत सक्षम किया है? आप SQL सर्वर नेटवर्क कॉन्फ़िगरेशन और SQL मूल क्लाइंट xx कॉन्फ़िगरेशन के अंतर्गत प्रोटोकॉल पा सकते हैं।

सर्वर पर कनेक्शन स्वयं "साझा मेमोरी" प्रोटोकॉल के लिए धन्यवाद काम करता है।


9
मैं आपके उत्तर को स्वीकार कर रहा हूं क्योंकि यह मुझे सही रास्ते पर मिला है। SQL सर्वर कॉन्फ़िगरेशन प्रबंधक के तहत, टीसीपी / आईपी पहले से ही "SQL सर्वर 2005 नेटवर्क कॉन्फ़िगरेशन> प्रोटोकॉल फॉर SQLEXPRESS" और "SQL नेटिव क्लाइंट कॉन्फ़िगरेशन> क्लाइंट प्रोटोकॉल" के तहत सक्षम था। नामित पाइप्स पहले से ही बाद में सक्षम थे। मैंने इसे पूर्व में सक्षम किया था, लेकिन यह मदद नहीं करता था (एक ही त्रुटि संदेश)। अंत में, मैंने "SQL सर्वर" ड्राइवर के बजाय "SQL नेटिव क्लाइंट" ड्राइवर का उपयोग करने के लिए ODBC स्रोत को स्विच किया, और अंत में काम किया।
सपरगेम 14

थैंक यू सोपरगैम! मैंने कभी नहीं सोचा होगा कि SQL मूल ग्राहक की कोशिश की है! एक जादू की तरह काम किया!
फिलिप सन्

5

क्या आपने दूरस्थ कनेक्शन की अनुमति देने के लिए SQL सर्वर 2005 को कॉन्फ़िगर करने के लिए SQL सर्वर ब्राउज़र सेवा को सक्षम किया है ?

यदि आप इंस्टेंस नाम का उपयोग करके SQL सर्वर 2005 चला रहे हैं और आप अपने कनेक्शन स्ट्रिंग में एक विशिष्ट टीसीपी / आईपी पोर्ट नंबर का उपयोग नहीं कर रहे हैं, तो आपको दूरस्थ कनेक्शन के लिए SQL सर्वर ब्राउज़र सेवा को सक्षम करना होगा। उदाहरण के लिए, SQL Server 2005 एक्सप्रेस कंप्यूटर Name \ SQLEXPRESS के डिफ़ॉल्ट उदाहरण नाम के साथ स्थापित किया गया है।


दूर से एक अलग तंत्र का उपयोग स्थानीय पर सर्वर \ आवृत्ति से कनेक्ट करता है ??
सैम

@ समान ने हकन विन्थर को उत्तर दिया।
सिम

4

MSSQL 2008 सर्वर से कनेक्ट करने के लिए Access का उपयोग करते समय इस थ्रेड ने मेरे लिए एक ही त्रुटि संदेश तय किया। MSSQL 2005 और इससे पहले कनेक्शन स्ट्रिंग में कंप्यूटर के नाम का उपयोग करके ठीक काम किया गया था, लेकिन जब मुझे 2008 में अपग्रेड किया गया था, तब मुझे एक्सेस फॉर्म में कनेक्शन स्ट्रिंग में बदलना पड़ा:

servername\instancename,portnumber


2
यह मेरे लिए किया था, सिवाय इसके कि मुझे पोर्ट नंबर की जरूरत नहीं थी।
bgmCoder 16

2

मेरे पास यही मुद्दा था और SQL ड्राइवर को SQL मूल क्लाइंट ड्राइवर में भी बदलकर इसे हल करने में कामयाब रहा। यह अजीब था क्योंकि मेरे मामले में यह वर्षों से ठीक काम कर रहा था और फिर बस काम करना बंद कर दिया। मुझे संदेह है कि यह ड्राइवर के भ्रष्ट होने के साथ कुछ है, शायद MDAC का एक बहाली सहायता कर सकता है, लेकिन कुछ समय के लिए मैं खुश हूं कि यह बिल्कुल काम कर रहा है!


1

यदि यह पूरी तरह से योग्य है तो क्या यह सर्वर नाम को पहचान लेगा? अगर यह MYSERVER.domain.com होता? हमें एक अलग डोमेन से कनेक्ट करते समय SQL सर्वर के साथ ऐसा करना होगा। यदि आप डेटा स्रोत का परीक्षण करने के लिए कनेक्ट करने के लिए ODBC सिस्टम DSN प्राप्त कर सकते हैं, तो आप प्रगति कर रहे हैं। यदि यह ODBC सेटअप में कनेक्ट नहीं होता है, तो आपको पहले इसे ठीक करना होगा।


ठीक यही है कि मैं ऐसा करने की कोशिश कर रहा हूं - जब मैं डेटा स्रोत का परीक्षण करता हूं तो ओडीबीसी सिस्टम डीएसएन को पहली जगह से जोड़ने के लिए। इसलिए मैंने आपके सुझाव की कोशिश की, दोनों की कोशिश की MYSERVER.domain.com\SQLEXPRESSऔर MYSERVER.domain.com, लेकिन उन दोनों ने मुझे वही त्रुटियां दीं जो मैंने क्रमशः ऊपर सूचीबद्ध की थीं।
सपरगम

अन्य कंप्यूटर प्रकार "nslookup MYSERVER.domain.com" पर कमांड प्रॉम्प्ट पर - क्या यह सही IP पते (123.456.789.012) या बिल्कुल भी हल होता है?
सिम

@ सीम - हाँ, वह आदेश ठीक से हल करता है।
शावर में

1

क्या आप ODBC कनेक्शन पर नामित पाइप या टीसीपी का उपयोग कर रहे हैं जो काम करता है? क्या टीसीपी सक्षम है?


1

सुनिश्चित करें कि आपके पास SQL ​​सर्वर के लिए दूरस्थ tcp Connectios सक्षम है।


0

बस एक जंगली शॉट यहाँ लेकिन क्या होता है अगर आप सर्वर नाम या आईपी पते से पहले एक डबल बैकस्लैश लगाते हैं? यह सिर्फ मुझे लगता है कि यह सामान्य रूप से अधिकांश अन्य विंडोज / माइक्रोसॉफ्ट कनेक्शन के लिए आवश्यक है।


एक ही 1326 त्रुटि (पहले सूचीबद्ध मैं) में डबल बैकस्लैश परिणामों की कोशिश कर रहा हूं।
३-१० बजे

0

मेरा मुद्दा भी ऐसा ही था। मेरे मामले में एक और sw OD OD सेटिंग को कॉन्फ़िगर करता है जिससे मैं ड्राइवर को बदल नहीं सकता। मैंने अपना केस इस तरह हल किया:

  1. पोर्ट 1433 का उपयोग करने के लिए सर्वर के लिए टीसीपी / आईपी सेटिंग्स सेट करें
  2. क्लाइंट पर सर्वर पता दर्ज करें जैसे: 192.168.1.5,1433 (कोई उदाहरण नाम नहीं)

फिर यह काम करने लगा। क्लाइंट OS: Win7 x64 ड्राइवर: sqlsrv32.dll


0

जो इसके लायक है, उसके लिए मुझे यह कनेक्शन एक कनेक्शन पर मिलना शुरू हुआ जो पहले काम कर रहा था। यह पता चला कि MSSQL $ SQLEXPRESS सेवा किसी तरह बंद हो गई थी। इसे फिर से शुरू करने से समस्या ठीक हो गई।


0

मेरे पास यह मुद्दा भी था, और यह इस तरह से सरल था: इस सर्वर के लिए प्राथमिक DNS सर्वर के रूप में सूचीबद्ध सर्वर को हटा दिया गया था, और ऐप अब नेटवर्क पर SQL सर्वर के नाम को सही ढंग से हल करने में सक्षम नहीं था। जब मैंने स्थानीय DNS सर्वर को एक कामकाज के लिए ठीक किया तो सब कुछ तुरंत फिर से काम करना शुरू कर दिया।

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