从 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 &lt;- odbcConnect("xxx.xxx.x.xx", uid="&lt;user loggin&gt;", pwd="&lt;user password&gt;")我用我要连接的计算机的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 = &lt;username&gt; Password = &lt;password&gt; 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 服务器的主要内容,如果未能解决你的问题,请参考以下文章

使用 Android 手机连接到 Mac OSX

安装opencv python mac osx 10.11?

在 Mac OSx 上通过 SSH 连接到 EC2 时出现权限错误

通过 R 连接到 AWS Redshift - Mac OSX

sh 如何启动Mist并连接到私有区块链? (Mac OSX)

如何关闭OSX 10.11 SIP