R和SQL Server使用Mac OS的实际驱动程序

时间:2017-04-19 18:42:54

标签: sql-server r macos

我试图将MacOS 10.12上的RStudio连接到网络上的SQL Server实例。

我尝试通过install.packages("RODBC")安装RODBC。这失败了错误:

configure: error: "ODBC headers sql.h and sqlext.h not found"

我理解Mac OS和RStudio使用iODBC,但这些标题是unixODBC的一部分,所以我通过brew install unixODBC安装了它。这至少解决了RODBC安装,现在我能够通过library(RODBC)在RStudio中成功加载该库。

接下来,我从http://odbcmanager.net安装了ODBC Manager,并从Actual Technologies安装了Actual SQL Server驱动程序。然后,我能够设置指向我的本地SQL Server的DSN,在/Library/ODBC/odbc.conf中看起来像这样:

[ODBC Data Sources]
sqlbox = Actual SQL Server

[sqlbox]
Driver         = /Library/ODBC/Actual SQL Server.bundle/Contents/MacOS/atsqlsrv.so
Description    = SQLBox
Server         = sqlbox.mydomain.com
UserID         = myuser
UseKeychain    = Yes
ServerName     = sqlbox
host           = sqlbox.mydomain.com
client charset = UTF-8

现在,当我通过conn<-odbcDriverConnect("sqlbox")请求R中的连接时,我收到此错误:

Warning messages:
1: In odbcDriverConnect("sqlbox") :
  [RODBC] ERROR: state S1092, code 0, message [Actual][SQL Server] Invalid option
2: In odbcDriverConnect("sqlbox") : ODBC connection failed

显然它正在寻找DSN,并加载(或至少找到)实际的驱动程序,但仍然有些东西是关闭的。 ODBC管理器工具没有用于验证连接的“测试”按钮,因此我无法尝试。是否有其他工具可以更好地反馈连接失败的原因?我错过了什么?

1 个答案:

答案 0 :(得分:0)

删除系统DSN并将其重新创建为用户DSN(在~/Library/ODBC/odbc.ini中)似乎已经解决了它。我现在能够连接并从R中提取SQL Server数据。