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

Posted

技术标签:

【中文标题】R 和 SQL Server 使用 Mac OS 的实际驱动程序【英文标题】:R and SQL Server using Actual driver for Mac OS 【发布时间】:2017-04-19 18:42:54 【问题描述】:

我正在尝试将 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 管理器,并从 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】:

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

【讨论】:

您能否展示如何将系统 DSN 更改为用户 DSN 的步骤?

以上是关于R 和 SQL Server 使用 Mac OS 的实际驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

如何用mac os x server搭建网站?

NFS: Mac OS X (server) and Mac OS X (clients)实现思路

在 Mac OS X 上使用 R 访问 MySQL 数据库

mac OS 安装 Apache Server(httpd)

win7虚拟机安装mac时提示客户机操作系统不是Mac OS X Server

Mac 操作系统安装 SVN server教程(Subversion With Mac OS X Tutorial)