उबंटू से MSSQL कनेक्शन


10

मुझे Ubuntu से MSSQL कनेक्शन बनाने के लिए एक आसान और पूर्ण ट्यूटोरियल की आवश्यकता है।

मुझे लगता है कि मैंने FreeTDS और UnixODBC स्थापित किया है, लेकिन कॉन्फ़िगरेशन बहुत जटिल है मुझे समस्या समझ में नहीं आई।

मैंने इस ट्यूटोरियल का अनुसरण किया: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu

लेकिन मैं असफल रहा।

root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~# 

संपादित करें:

इससे पहले "/etc/odbcinst.ini" और "/etc/odbc.ini" का संपादन खाली था।

मैंने इन पंक्तियों को /etc/odbcinst.ini में जोड़ा:

[FreeTDS]

Description     = TDS driver (Sybase/MS SQL)

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

CPTimeout       =

CPReuse         =

FileUsage       = 1

मैंने इन पंक्तियों को /etc/odbc.ini में जोड़ा:

[project_development]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername      = developer
Database        = project_development

[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test

[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production

मैंने शुरुआत से ही "/etc/freetds/freetds.conf" पर कोई बदलाव नहीं किया।

फिर भी, कुछ भी नहीं बदला है।


क्या आपने ODBC फ़ाइल (/etc/odbc.ini) पर प्रविष्टि बनाई है? और "/etc/odbcinst.ini" फ़ाइल में ड्राइव की जाँच करें
vembutech

ये दोनों फाइलें खाली हैं, मुझे क्या करना चाहिए? क्या आप एक लिंक या कुछ विवरण साझा कर सकते हैं?
मेरिटिल्डिरन

मुझे विश्वास है कि आपने "लिंक को कॉन्फ़िगर करें" चरण में उपलब्ध लिंक को याद किया है, जिसका आपने अनुसरण किया था। URL में कृपया उन दो फ़ाइलों को अपडेट करें: github.com/rails-sqlserver/activerecord-sqlserver-adcape/wiki/… और जाँच करें कि क्या समस्या हल हो गई है।
वीमेन्यूटेक

कुछ भी नहीं बदला है मैंने उस प्रश्न को संपादित किया है जिसे आप ऊपर देख सकते हैं
मेरिटिल्डिरन

जवाबों:


11

यहाँ चरण दर चरण निर्देश दिए गए हैं (यहाँ पाया गया) :

सबसे पहले, unixODBC स्थापित करें:

sudo apt-get install unixodbc unixodbc-dev

मैंने निम्नलिखित (शायद आवश्यक) पैकेज भी स्थापित किए हैं:

sudo apt-get install tdsodbc php5-odbc

फिर डाउनलोड करें, अनटार करें, संकलन करें और FreeTDS स्थापित करें (चेतावनी, URL बदल सकता है):

cd /usr/local

wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar xvfz freetds-stable.tgz
cd freetds-0.82
./configure --enable-msdblib --with-tdsver=8.0 --with-unixodbc=/usr
make
make install
make clean

अपने SQL सर्वर उदाहरण के लिए टेलनेट पर एक कनेक्शन का प्रयास करें:

telnet 192.168.0.1 1433

कनेक्शन का परीक्षण करने के लिए tsql टूल का उपयोग करें:

tsql -S 192.168.0.1 -U devuser

यह आपको पासवर्ड के लिए संकेत देना चाहिए, जिसके बाद आप इस खूबसूरत संकेत को देखने की उम्मीद कर सकते हैं:

1>

यदि वह काम करता है, तो मैं एक (कोडिंग) पार्टी को फेंकने की सलाह देता हूं। आगे कुछ विन्यास है। FreeTDS config फ़ाइल खोलें। /usr/local/etc/freetds.conf

फ़ाइल के निचले भाग में निम्न प्रविष्टि जोड़ें। हम एक डेटा स्रोत नाम (DSN) स्थापित कर रहे हैं जिसे 'MSSQL' कहा जाता है।

[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0

अब ODBC कॉन्फ़िगरेशन फ़ाइल खोलें: /usr/local/etc/odbcinst.ini

और अंत में निम्नलिखित MSSQL ड्राइवर प्रविष्टि (FreeTDS) जोड़ें:

[FreeTDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

फिर, अंत में ODBC के भीतर DSN को odbc.ini फ़ाइल में /usr/local/etc/odbc.ini पर इस बिट फ़ाइल में जोड़कर सेट करें:

[MSSQL]
Description = MS SQL Server
Driver = /usr/local/lib/libtdsodbc.so
Server = 192.168.2.3
UID = devuser
PWD = devpass
ReadOnly = No
Port = 1433

इसक उपकरण का उपयोग करके कनेक्शन का परीक्षण करें:

isql -v MSSQL devuser 'devpass'

यदि आप देखते हैं "कनेक्टेड!" तुम सुनहरे हो, बधाई हो! यदि नहीं, तो मुझे खेद है; नीचे देखें जहां कुछ संसाधन हैं जो मदद कर सकते हैं।

अब Apache को पुनरारंभ करें और DSN के रूप में 'MSSQL' का उपयोग करके PHP से इसका परीक्षण करें। अगर कुछ काम नहीं करता है, तो आप इन पैकेजों में से किसी एक या सभी को स्थापित करने का प्रयास कर सकते हैं: mdbtools libmdbodbc libmdbtools mdbtools-gmdb


"tsql -S 192.168.0.1 -U devuser" के बाद: कनेक्शन विदेशी होस्ट द्वारा बंद कर दिया गया। मुझे क्या करना चाहिए?
मध्याह्न काल 28:00

आप स्थानीय आईपी का उपयोग करें
ट्रेवर क्लार्क

मैंने वास्तव में "tsql -S 77.223.141.204 -U बेकन" MSSQL सर्वर के IP पते
मेरिटिल्डिरन

क्या तब यह लोकलहोस्ट नहीं होगा? क्योंकि आप अपने खुद के बाहरी आईपी से कनेक्ट नहीं कर सकते।
ट्रेवर क्लार्क 20

हां यह एक बाहरी आईपी है जो इस पद्धति के माध्यम से एक्सेस करना संभव नहीं है? मुझे क्या करना चाहिए?
मध्याह्न काल 28:05

4

भरोसेमंद 14.04 पर मुझे http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz बनाने में समस्याएँ थीं

जब मैंने एक tsqlकमांड चलाने की कोशिश की , तो मुझे पता चला tsqlकि एप के माध्यम से स्थापित किया जा सकता है:

$ sudo apt-get install freetds-bin

0

आशा है कि आपने फ़ाइल के लिंक में सामग्री की प्रतिलिपि बनाई है। आपको अपने SQL सर्वर विवरण को "/etc/odbc.ini" फ़ाइल में अपडेट करना होगा। आप लिंक http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/ का संदर्भ ले सकते हैं


"tsql -S 192.168.0.1 -U devuser" के बाद: कनेक्शन विदेशी होस्ट द्वारा बंद कर दिया गया। मुझे क्या करना चाहिए?
मेरिटिल्डिरन

क्या आप जाँच सकते हैं कि पोर्ट 1433 MSSQL सर्वर में खुला है या नहीं। आपको यह सुनिश्चित करने की आवश्यकता है कि आप अपने MSSQL सर्वर के पोर्ट 1433 का उपयोग कर सकते हैं। यदि यह खुला नहीं है तो कृपया पोर्ट खोलें और फिर चेक करें
वीम्बूटेक

0

मुझे Ubuntu 14.04 और 17.04, दोनों LTS 64-बिट के लिए ऐसा करना था। संभवतः बाद के संस्करणों के लिए काम करता है।

Unixodbc (ODBC कनेक्शन), freetds (SQL सर्वर कनेक्शन) और tdsodbc (पूर्व दो के बीच पुल) स्थापित करें

sudo apt install unixodbc freetds-bin tdsodbc

अपने ODBC ड्राइवरों को /etc/odbcinst.ini में जोड़ें (खाली होना चाहिए)

[SQL Server]
Description = FreeTDS driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

अपने DSNs को /etc/odbc.ini में जोड़ें (खाली भी होना चाहिए)

[ACCOUNTING]
Description = Accounting database
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Server = 123.123.123.123
Database = your_database_name
Port = 1433

और वह सब था।


libtdsodbc.so और libtdsS.so / usr / lib / x86_64-linux-gnu / odbc /
Strixy

0

इसके द्वारा निहित प्रश्न का उत्तर देने के लिए:

मुझे Ubuntu से MSSQL कनेक्शन बनाने के लिए एक आसान और पूर्ण ट्यूटोरियल की आवश्यकता है

... और सभी फ्रीटीडीएस सेटअप सामानों की अनदेखी।

उपयोग mssql-CLI ( स्थापित , उपयोग )।


0

मैं एक ऐसी कंपनी में काम करता हूं जो Microsoft उत्पादों का भारी उपयोग करती है। हालांकि, मैं एक लिनक्स मशीन (उबंटू) पर काम करना पसंद करता हूं। विशेष रूप से, मैं Ubuntu 16.04 LTS का उपयोग करता हूं ।

मैं JetBrains ' DataGrip या SQL इलेक्ट्रॉन SQL GUIs के रूप में उपयोग करता हूं । DataGrip को SQL सर्वर के लिए Microsoft JDBC ड्राइवर की आवश्यकता होगी जिसे पहली बार DataGrip खोलने पर आपको मैन्युअल रूप से इंगित करना होगा। मैंने इसे डाल दिया /usr/share/java/, लेकिन कहीं भी काम करेगा।

कनेक्ट करना मेरे विंडोज 10 लैपटॉप पर सरल है। मैं बस SQL ​​सर्वर प्रबंधन स्टूडियो खोलता हूं, और (उपयोगकर्ता नाम + पासवर्ड) लॉग इन करने के लिए अपनी साख का उपयोग करता हूं; मैं Windows प्रमाणीकरण का उपयोग नहीं करता।

आवश्यक शर्तें

उबंटू से कनेक्ट करने के लिए, यह थोड़ा ( बस थोड़ा सा ) अतिरिक्त काम है। सबसे पहले, मेरी विंडोज 10 मशीन पर, मैं एक पॉवर्सशेल टर्मिनल खोलता हूं, और निम्नलिखित में टाइप करता हूं

nslookup <server name here>

और यह कुछ इस तरह लौटता है

Non-authoritative answer:
Name: <server name here>
Address: <server's address>

सर्वर का नाम और पता स्थिर होगा, इसलिए ऊपर वाले को केवल उस सर्वर को एक बार चलाने की आवश्यकता होगी जिसे आप एक्सेस करने का प्रयास करते हैं।

DataGrip

फिर, मैं अपने लिनक्स मशीन पर कूदता हूं और डेटाग्रिप खोलता हूं। के लिए Hostमें मैं प्रकार <server's address>1433 (इस एमएस एसक्यूएल सर्वर के लिए डिफ़ॉल्ट है): पोर्ट। URL कुछ इस तरह दिखना चाहिए,

URL: jdbc:sqlserver://<server's address>:1433

यदि आप क्लिक करते हैं Test Connection, तो यह आपको लॉगिन जानकारी के लिए संकेत देगा यदि आपने अभी तक इसे नहीं जोड़ा है। और यह DataGrip के लिए है!

DataGrip में निम्न ब्लॉग भी होता है, जो नए उपयोगकर्ताओं के लिए सहायक हो सकता है: DataGrip को MS SQL सर्वर से कनेक्ट करना

SQL इलेक्ट्रॉन

यदि आप DataGrip नहीं खरीदना चाहते हैं, तो आप SQL इलेक्ट्रॉन का उपयोग कर सकते हैं। कदम समान हैं। SQL इलेक्ट्रॉन खोलें, एक नया सर्वर जोड़ने के लिए क्लिक करें, और Server Addressटाइप करें <server's address>पोर्ट, 1433, और अंत में अपने लॉगिन क्रेडेंशियल्स। और बस!


0

दूरस्थ सर्वर पर चल रहे MSSQL के उदाहरण से कनेक्ट करने के लिए:

इस लेख में लागू चरणों का पालन करें https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns?view=sql -server 2017

नोट: परीक्षणों को पूरा करने के लिए, आपको कुछ और काम करने होंगे: संपादित करें /etc/odbc.ini और निम्नलिखित जोड़ें:

[MSSQL] Driver=ODBC Driver 17 for SQL Server Server=[ServerIP][,1433]

परीक्षण करने के लिए, टर्मिनल में निम्नलिखित निष्पादित करें:

isql -v MSSQL [उपयोगकर्ता नाम] [पासवर्ड]

आपको "कनेक्टेड" प्रतिक्रिया देखनी चाहिए।

यदि आप संघर्ष कर रहे हैं, तो जांचें कि आपके लिनक्स और विंडोज सर्वर पर पोर्ट खुले हैं!

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