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 的实际驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
NFS: Mac OS X (server) and Mac OS X (clients)实现思路
mac OS 安装 Apache Server(httpd)