7

我收到错误消息:

 [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

谁能提供有关安装 ODBC 驱动程序以使其与 RODBC 一起使用的详细说明?

注意:我正在尝试连接到 MSSQL Server

4

2 回答 2

8

在我的工作中,我们使用 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

自从设置它以来,我没有任何问题。希望这会有所帮助 - 如果您有更多问题,我可以尝试回答。

于 2012-06-18T20:21:33.450 回答
4

我在 Linux 上使用带有 RJServer 的远程 R 会话,在 Eclipse 下从 StatET 连接到它时遇到了类似的问题。错误如下所示:

[RODBC] 错误:状态 01000,代码 0,消息 [unixODBC][驱动程序管理器]无法打开 lib '/usr/local/easysoft/sqlserver/lib/libessqlsrv.so':找不到文件

解决这个问题的困难在于错误消息具有误导性:消息中显示的文件是完全可见的(我可以测试它)。“秘密”是“找不到文件”是指另一个依赖库。

底线:我在远程会话中使用的 LD_LIBRARY_PATH 中添加了一些元素,在我的例子中是:/usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/lib

要弄清楚您需要添加什么,您应该查看缺少的内容。在有问题的库上使用“ldd”命令。

于 2012-11-27T21:36:29.530 回答