2012-12-14 120 views
8

ODBC isql無法連接到數據源:ODBC無法連接到MSSQL數據源在OS X獅子

$ 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 

freetdsunixODBC是由家庭安裝0。

我在CentOS上有類似的設置,odbc isql到mssqlserver工作正常。有一個noticable區別,我看不出在OS X

# cat /etc/odbcinst.ini在CentOS一個libtdsS.so安裝:

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

是這樣的問題的原因是什麼?

p.s. $ 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作品重新安裝後unixodbcfreetds--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

確定。我浪費了兩天的時間,但不想使用Homebrew或MacPorts。訣竅是使用unixODBC開關構建FreeTDS。這會生成不會生成的odbc驅動程序(xxx.so)。要開始您需要 XCode和命令行工具已經安裝。網上有足夠的資源來展示如何做到這一點。

這是我採取的步驟。

  1. 下載Latest Stable FreeTDS
  2. 下載Latest Stable unixODBC
  3. 拆開兩者。
  4. 請注意unpacked unixODBC目錄的完整路徑。
  5. 從終端提示符導航到FreeTDS目錄併發出以下命令。

    的./configure --with-的unixODBC =在步驟4
    指出路徑使
    須藤使安裝

完成後,一切都應該在/ usr /本地/。你的驅動程序應該在/ usr/local/lib中。在/ usr/local/etc中編輯您的設置文件。希望這可以幫助。

0

對於任何人誰使用MacPort,唯一的不同部分從上方安裝freetds的是這樣的:

sudo port install freetds +mssql +odbc +universal 

和驅動程序庫將在這裏:

/opt/local/lib/libtdsodbc.so