2012-06-18 104 views
4

我正在錯誤使用RODBC的ODBC服務器:試圖連接到Ubuntu的

[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found 
2: In odbcDriverConnect("driver={SQL Server};server=*******;database=****;trusted_connection=true") : 
ODBC connection failed 

任何人都可以提供,以便它與RODBC工作的驅動程序安裝ODBC詳細說明?

注:我試圖連接到一個MSSQL服務器

+1

@JDLong有類似的問題。我建議他嘗試[RJDBC](http://cran.r-project.org/package=RJDBC),而我認爲這工作... –

+0

我正在RJDBC工作,它只是我有rJava的問題 - 它在我的R控制檯(連接到服務器和一切)中工作,除非當我嘗試通過rApache運行它時,它會崩潰,因爲我在另一個線程中發佈。 –

回答

5

在這裏,在我的工作中,我們使用的Centos 5.8。當我需要連接到我們的MS-SQL服務器時,我使用FreeTDS驅動程序。我在這裏進一步討論它:https://stackoverflow.com/a/10196098/1332389,包括我安裝的軟件包和依賴關係。

樣本連接字符串可能是這樣的:

data_odbc <- odbcDriverConnect(connection="Driver=FreeTDS; 
              Server=dataserver1\\instancename(default: master); 
              Port=1433;   
              Database=database_01; 
              Uid=data_mgmt; 
              Pwd=placeholder") 

我們配置了ODBCINST.INI文件(在/ etc /)說:

# FreeTDS Drivers 
# Manual setup, used for MS SQL 
[FreeTDS] 
Description  = FreeTDS for MSSQL 
# 32 bit 
Driver   = /usr/lib/libtdsodbc.so 
Setup   = /usr/lib/libtdsS.so 
# 64 bit 
Driver64  = /usr/lib64/libtdsodbc.so 
Setup64   = /usr/lib64/libtdsS.so 
FileUsage = 1 

我已經因爲沒有問題讓它成立。希望這有助於 - 如果您有更多問題,我可以嘗試回答。

2

我在Linux上使用遠程R對話類似的問題,與RJServer,Eclipse的下連接到它從StatET。看着錯誤是這樣的:

[RODBC]錯誤:狀態01000,碼0,消息[的unixODBC] [驅動程序管理器]無法打開LIB '/usr/local/easysoft/sqlserver/lib/libessqlsrv.so' :文件未找到

解決這個問題的困難是,該錯誤信息是誤導:消息中顯示的文件是完全可見的(我可以測試它)。 「祕密」是「文件未找到」是指另一個從屬庫。

底線:我加了一些元素在遠程會話中使用的LD_LIBRARY_PATH,在我的情況是: 在/ usr /本地/斯軟件/ unixODBC的/ lib目錄下:在/ usr /本地/斯軟件/ lib目錄

爲了弄清楚你需要添加什麼,你應該看到缺少的東西。在有問題的庫上使用「ldd」命令。