मुझे रुबी को माइक्रोसॉफ्ट एसक्यूएल सर्वर से कनेक्ट करने में समस्याएं आ रही हैं। मैं मैक ओएस एक्स चला रहा हूं, लेकिन लक्ष्य पर्यावरण उबंटू लिनक्स है।SQL सर्वर से कनेक्ट रूबी
यहाँ मैं क्या कोशिश की है:
- स्थापित unixODBC
- स्थापित FreeTDS
- इस्तेमाल किया विकल्पों
--with-unixodbc=/usr/local/etc
--with-tdsver=8.0
- इस्तेमाल किया विकल्पों
मैं तो में इन फ़ाइलों था /usr/local/etc
:
odbc.ini
odbcinst.ini
freetds.conf
मैं इस तरह मेरी ODBC ड्राइवर फाइल करने के लिए odbcinst.ini
फ़ाइल में FreeTDS ड्राइवर के लिए एक संदर्भ कहा:
;
; odbcinst.ini
;
;
[FreeTDS]
Driver = /usr/local/lib/libtdsodbc.so
फिर मैंने कॉन्फ़िगर किया इस तरह freetds.conf
फ़ाइल में सर्वर:
# Aries database server (SQL Server 2008)
[aries-db1]
host = xx.xx.xx.xx
port = 1433
tds version = 8.0
और अंत में मैं odbc.ini
फ़ाइल इस तरह में ODBC DSN कहा:
[aries-db1]
Driver = FreeTDS
Description = ODBC Connection via FreeTDS
Trace = 1
Servername = aries-db1
Database = MY_DB
UID = user1
PWD = pass1
इस बात की पुष्टि कर सकते हैं कि मेरे सर्वर ऑनलाइन है और बंदरगाह खुला है (टेलनेट & yougetsignal.com पोर्ट चेक के माध्यम से)।
एक परीक्षण के रूप में, मैं इस किया था:
tsql -S aries-db1 -U user1 -P pass1
और यह सिर्फ ठीक कनेक्ट करने के लिए लग रहा था। अमान्य मानों में गुजरने के परिणामस्वरूप अपेक्षित त्रुटियां हुईं।
तो अंत में मेरे सवाल का:
मैं कैसे रूबी को यह विस्तार करते हैं? मैंने अभी तक कुछ भी नहीं किया है। मैं इस तरह अगली कड़ी की कोशिश की:
require 'sequel'
Sequel.connect('aries-db1')['select * from foo'].all
और मैं इस तरह एक त्रुटि प्राप्त:
Sequel::DatabaseConnectionError: ODBC::Error: S1000 (0) [unixODBC][FreeTDS][SQL Server]Unable to connect to data source
कौन मुझसे कहता है कि यह मेरे ड्राइवर विन्यास सही ढंग से लग रहा है, लेकिन किसी कारण से कनेक्ट नहीं कर सकता।
मैं भी इस तरह DBI की कोशिश की:
DBI.connect('DBI:ODBC:aries-db1')
और मैं एक ऐसी ही त्रुटि मिलती है।
कोई सुझाव? मुझे लगता है कि मैं बहुत करीब हूं, लेकिन मुझे यकीन नहीं है कि समस्या निवारण के आगे क्या प्रयास करें।
'मैं पुष्टि कर सकते हैं कि अपने सर्वर है ऑनलाइन और बंदरगाह खुला है (टेलनेट और yougetsignal.com पोर्ट चेक के माध्यम से)। क्षमा करें, मैं आपके प्रश्न का उत्तर नहीं दे सकता। हालांकि आपको पता होना चाहिए कि इंटरनेट पर SQL सर्वर का खुलासा करने से सुरक्षा समस्या उत्पन्न हो सकती है। SQL सर्वर के लिए विभिन्न बॉट स्कैन करते हैं और इसे कनेक्ट/आक्रमण करने का प्रयास करेंगे। –
क्या आपको एमआरआई का उपयोग करना है? क्या आप जेआरबी और जेडीबीसी का उपयोग नहीं कर सकते? – Luke
@ विल्ल - इसे इंगित करने के लिए धन्यवाद। मुझे पता है कि यह कितना बुरा है, लेकिन उत्पादन प्रणाली में मैं इसे आईपी पते से बंद कर दूंगा और बंदरगाह बदल रहा हूं। मैं सिर्फ यह सत्यापित करने की कोशिश कर रहा हूं कि ये सभी टुकड़े एक साथ काम करते हैं। –