2012-06-18 190 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”命令。