从 mac osx 10.11 连接到带有 RODBC 的 MS SQL 服务器
Posted
技术标签:
【中文标题】从 mac osx 10.11 连接到带有 RODBC 的 MS SQL 服务器【英文标题】:Connection to MS SQL server with RODBC from mac osx 10.11 【发布时间】:2016-06-02 19:25:20 【问题描述】:我已经下载并配置了 freeTDS 和 unixODBC,作为我连接 tsql 和 isql 的证明。当我从 RStudio 下载 RODBC
并尝试连接 mssql 服务器时,出现以下错误
[RODBC] ERROR: state IM002, code 1606386064, message [iODBC][Driver Manager]
Data source name not found and no default driver specified. Driver could not be loaded
从错误中我注意到仍在使用 iODBC 而不是 unixODBC。然后我从 RStudio 卸载 RODBC
并转到终端尝试强制 RODBC
通过使用 unixODBC 进行安装
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
R CMD INSTALL /Users/<username>/Downloads/RODBC_1.3-13.tar.gz
所以电脑知道安装在unixODBC的位置。
我得到与上述相同的错误。我不确定我是否做错了什么,或者是否有另一种方法可以让 R 使用 unixODBC?
我也愿意接受有关如何使 iODBC 工作的建议。在整个连接到服务器业务方面,我是新手。
【问题讨论】:
没有看到你使用的代码,很难知道给你什么建议。您是使用带有odbcConnect
的数据源名称还是带有odbcDriverConnect
的连接字符串?如果是 DSN,DSN 的配置是什么?
我用它来尝试连接library("RODBC", lib.loc="/usr/local/lib/R/3.3/site-library")``con <- odbcConnect("xxx.xxx.x.xx", uid="<user loggin>", pwd="<user password>")
我用我要连接的计算机的IP地址命名了DSN,它有点时髦,但从终端连接时似乎可以工作。
嗯,有些事情我从未尝试过。如果您不介意我的提问,为什么不在您的机器上配置 DSN?连接到另一台计算机以使用 DSN 似乎增加了一个不必要的步骤。
我可能会感到困惑,因为我是这一切的新手,但这是我的笔记本电脑 (mac) 上的内容。我在 freetds.confg 文件中用自制软件安装了 freetds 我有# A typical Microsoft server [abc.afg.a.cf] host = abc.afg.a.cf port = xxxxx tds version = 7.4 client charset = UTF-8
然后我用自制软件安装了 unixODBC 并配置了 odbc.ini 和 odbcinst.ini ,如下
odbc.ini [abc.afg.a.cf] Description = Test to SQLServer Driver = FreeTDS Trace = Yes TraceFile = /tmp/sql.log Database = AAAA Servername = abc.afg.a.cf UserName = <username> Password = <password> Port = xxxxx Protocol = 7.4 ReadOnly = No RowVersioning = No ShowSystemTables = No ShowOidColumn = No FakeOidIndex = No
【参考方案1】:
对于 OS 10.13.3,我使用以下命令让 r RODBC 和 python pymssql 与 MS SQL 一起工作:
brew install homebrew/core/freetds091 --with-unixodbc.
brew link --force freetds@0.91
pip install pymssql
然后对 /Users//.odbc.ini 进行以下编辑
[SQLServer]
Description = "my server"
Driver = /usr/local/lib/libtdsodbc.so
Trace=No
Server = "my server"
Port=1433
TDS_Version=8.0
Database= "my db"
【讨论】:
以上是关于从 mac osx 10.11 连接到带有 RODBC 的 MS SQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章
安装opencv python mac osx 10.11?
在 Mac OSx 上通过 SSH 连接到 EC2 时出现权限错误
通过 R 连接到 AWS Redshift - Mac OSX