मैं आईओडीबीसी का उपयोग कर अपने मैक विकास मशीन से एक Microsoft SQL सर्वर से कनेक्ट करने का प्रयास कर रहा हूं। कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मुझे फ्रीटीडीएस ड्राइवर से त्रुटि संदेश Unable to connect to data source
मिलता है। विभिन्न मैनुअल, ब्लॉग पोस्ट, और स्टैक ओवरफ्लो प्रश्नों से परामर्श करने के बाद, मैं अपने बुद्धि के अंत में हूं।मैक पर iODBC के साथ एमएस एसक्यूएल सर्वर से कनेक्ट
मै मैक ओएस एक्स 10.7.4 का उपयोग कर रहा हूं, फ्रीबड्स संस्करण 0.91 होमब्री के माध्यम से स्थापित है।
$ brew install freetds
$ mkvirtualenv odbc
$ workon odbc
$ pip install pyodbc
$ tsql -H localhost -U mydbusername -P mydbpassword -p 1433
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> quit
ऊपर जोड़ता और काम करता है, लेकिन: यहाँ मैं क्या कर रहा है
$ iodbctest
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0607.1008
Enter ODBC connect string (? shows list): driver={TDS};server=localhost;uid=mydbusername;pwd=mydbpassword;database=mydbname
1: SQLDriverConnect = [FreeTDS][SQL Server]Unable to connect to data source (0) SQLSTATE=08001
1: ODBC_Connect = [FreeTDS][SQL Server]Unable to connect to data source (0) SQLSTATE=08001
जब से मैं अंत में PyODBC के माध्यम से इसका इस्तेमाल करने की योजना बना रहा हूँ, मुझे लगता है कि रूप में अच्छी तरह करने की कोशिश की:
$ python
Python 2.7.3 (default, Jun 22 2012, 00:35:38)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyodbc
>>> c = pyodbc.connect(driver='/usr/local/lib/libtdsodbc.so', host='localhost', name='mydbname', uid='mydbusername', pwd='mydbpassword')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('08001', '[08001] [FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')
मैंने ब्लॉग पोस्ट और एसओ पोस्ट में सुझाए गए सभी प्रकार की चीजों की कोशिश की है ... ओडीबीसी प्रशासक में डीएसएन बनाना, ~/.odbc.ini
बनाना, जो यूनिक्सोडबीसी (जो पीओओडीबीसी के साथ काम नहीं करता) का उपयोग करने का प्रयास कर रहा है, कीवर्ड तर्कों के बजाय कनेक्शन स्ट्रिंग इत्यादि। मैंने आईओडीबीसी के माध्यम से एक ट्रेस फ़ाइल भी बनाई है, जिसे मैंने here चिपकाया है, लेकिन मैं त्रुटि संदेश से अधिक जानकारी प्राप्त नहीं कर सका।
(मैं उल्लेख करना चाहिए कि मैं अपने ~/.ssh/config
में लाइन LocalForward localhost:1433 production.someinstitution.edu:1433
साथ SSH पर एसक्यूएल सर्वर के लिए कनेक्शन सुरंग कर रहा हूँ, क्योंकि मेरी आईटी विभाग मुझे सीमित है उत्पादन सर्वर का IP से केवल कनेक्ट करने के लिए। यह एक जीयूआई ग्राहक के लिए काम करता है (SQuirreLSQL) तो मुझे लगता है कि अग्रेषण सही है।)
आप pyodbc कनेक्शन स्ट्रिंग में पोर्ट निर्दिष्ट है? – sunprophit
मुझे ** पता था ** यह कुछ आसान होना था जो मुझे याद आ रही थी! बहुत बहुत धन्यवाद सनप्रोफिट। भविष्य के संदर्भ के लिए नोट किया गया: फ्रीटीडीएस (या iODBC?) में ड्राइवर के लिए 'डिफ़ॉल्ट' पोर्ट की अवधारणा नहीं है। – josePhoenix
@sunprophit: बस चेक किया गया, और यह अभी पूरी तरह से काम कर रहा है! क्या आप इसे उत्तर के रूप में पोस्ट कर सकते हैं ताकि मैं इसे वोट/स्वीकार कर सकूं? – josePhoenix