2012-12-14 26 views
8

ODBC isql डेटा स्रोत से कनेक्ट करने में असमर्थ था:ODBC असमर्थ पर ओएस एक्स शेर MSSQL डेटा स्रोत से कनेक्ट करने के

$ isql SMS_GTWY username password -v 

रिटर्न:

[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source 
[01000][unixODBC][FreeTDS][SQL Server]Unknown host machine name. 
[ISQL]ERROR: Could not SQLConnect 

जबकि tsql ठीक है:

$ tsql -S SERVER001 -U username -P password 

रिटर्न:

locale is "C/UTF-8/C/C/C/C" 
locale charset is "UTF-8" 
using default charset "UTF8" 
1> 

$ cat ~/.freetds.conf:

[SERVER001] 
    host = 192.168.8.101 
    port = 1433 
    tds version = 8.0 
    client charset = UTF8 

$ cat ~/.odbc.ini:

[SMS_GTWY] 
    Description = SERVER001 Server 
    Driver  = freetds 
    Database = SMS_GTWY 
    ServerName = SERVER001 
    TDS_Version = 7.1 

$ cat ~/.odbcinst.ini:

[freetds] 
    Description = MS SQL database access with FreeTDS 
    Driver  = /usr/local/lib/libtdsodbc.so 
    Setup  = /usr/local/lib/libtdsodbc.so 
    UsageCount = 1 

freetds और unixODBC घरद्वारा स्थापित कर रहे हैं 0।

मेरे पास CentOS पर एक समान सेटअप है और mssqlserver के लिए odbc isql ठीक काम कर रहा है। वहाँ एक उल्लेखनीय अंतर नहीं है, मैं एक libtdsS.so ओएस एक्स

CentOS पर # cat /etc/odbcinst.ini पर स्थापित नहीं देख पा रहे हैं:

[freetds] 
Description = MS SQL database access with FreeTDS 
Driver  = /usr/lib/libtdsodbc.so 
Setup  = /usr/lib/libtdsS.so 
UsageCount = 1 

है कि इस समस्या का कारण?

पेज। $ odbcinst -j रिटर्न:

unixODBC 2.3.1 
DRIVERS............: /usr/local/Cellar/unixodbc/2.3.1/etc/odbcinst.ini 
SYSTEM DATA SOURCES: /usr/local/Cellar/unixodbc/2.3.1/etc/odbc.ini 
FILE DATA SOURCES..: /usr/local/Cellar/unixodbc/2.3.1/etc/ODBCDataSources 
USER DATA SOURCES..: /Users/horace/.odbc.ini 
SQLULEN Size.......: 8 
SQLLEN Size........: 8 
SQLSETPOSIROW Size.: 8 

$ odbcinst -q -d रिटर्न:

[freetds] 

$ odbcinst -q -s रिटर्न:

[SMS_GTWY] 

उत्तर

8

isql काम करता है के बाद पुनः स्थापित unixodbc और freetds (--with-unixodbc):

brew uninstall freetds 
brew uninstall unixodbc 

brew install unixodbc 
brew install freetds --with-unixodbc 

अब, $ isql -v SMS_GTWY username password रिटर्न:

+---------------------------------------+ 
| Connected!       | 
|          | 
| sql-statement       | 
| help [tablename]      | 
| quit         | 
|          | 
+---------------------------------------+ 
SQL> 

क्रेडिट: https://gist.github.com/565440

+0

आप एक प्रतिभाशाली हैं! इन अन्य उपयोगी निर्देशों का पालन करने के दौरान यह मेरे बेकन को बचाया। - http://www.acloudtree.com/how-to-install-freetds-and-unixodbc-on-osx-using-homebrew-for-use-with-ruby-php-and-perl/ –

+0

धन्यवाद। मुझे भी यह समस्याएं थीं। फिर से स्थापित करने – Greg

2

ठीक है। मैंने इस पर दो दिन बर्बाद कर दिया लेकिन होमब्री या मैकपॉर्ट्स का उपयोग नहीं करना चाहता था। चाल यूनिक्सोडबीसी स्विच के साथ फ्रीटीडीएस बनाने के लिए है। यह odbc ड्राइवर (xxx.so) उत्पन्न करता है जो अन्यथा उत्पन्न नहीं होता है। शुरू करने के लिए आपको एक्सकोड और कमांड लाइन टूल्स पहले से स्थापित करने की आवश्यकता होगी। वेब पर संसाधनों के बहुत सारे यह दिखाने के लिए कि यह कैसे करें।

यहां दिए गए कदम हैं।

  1. डाउनलोड Latest Stable FreeTDS
  2. डाउनलोड Latest Stable unixODBC
  3. अनपैक दोनों।
  4. अनपॅक किए गए यूनिक्सोडबीसी निर्देशिका का पूरा पथ नोट करें।
  5. टर्मिनल प्रॉम्प्ट से FreeTDS निर्देशिका में नेविगेट करें और निम्न आदेश जारी करें।

    कॉन्फ़िगर --with-unixodbc =चरण 4
    में नोट पथ
    sudo स्थापित

पूर्ण होने पर, सब कुछ/usr/स्थानीय/में होना चाहिए बनाते हैं। आपका चालक/usr/local/lib में होना चाहिए। अपनी सेटिंग्स फ़ाइलों को/usr/local/etc में संपादित करें। उम्मीद है की यह मदद करेगा।

0

जो कोई MacPort का उपयोग के लिए, ऊपर स्थापित करने है FreeTDS से केवल विभिन्न हिस्से इस तरह से:

sudo port install freetds +mssql +odbc +universal 

और ड्राइवर लाइब्रेरी यहाँ हो जाएगा:

/opt/local/lib/libtdsodbc.so