我收到错误:
[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服务器
答案 0 :(得分: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
自设置以来我没有遇到任何问题。希望这会有所帮助 - 如果您有更多问题,我可以尝试回答。
答案 1 :(得分:3)
我在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”命令。