我正在尝试使用R中的RODBC包在Mac 10.9.5上访问MS SQL。
我做了:
## install homebrew
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
## install freetds
brew install freetds --with-unixodbc
(使用了--with-unixodbc
选项,因此生成了库/usr/local/lib/libtdsodbc.so
。)并按照其余指示进行操作:http://www.r-bloggers.com/guide-to-accessing-ms-sql-server-and-mysql-server-on-mac-os-x/
我编辑了odbc.ini
文件,使其显示为:
[sqlserver01]
Driver=/usr/local/lib/libtdsodbc.so
TDS_Version=4.2
Server=IP.Server
Port = 1433
Trace = Yes
Description=my description
Database="DB name"
# can't specify username and password for freetds
(其中IP.Server是相应的IP,“DB Name”是数据库的名称)。然后,当我试图运行
ch1 <- odbcConnect(dsn="sqlserver01", uid="username", pwd="password")
(当然使用我的用户名和密码),我收到以下错误消息:
Warning messages:
1: In odbcDriverConnect("DSN=sqlserver01;UID=javier.zaurin;PWD=5R2fav3hgmG08zC_") :
[RODBC] ERROR: state 01000, code 20013, message [FreeTDS][SQL Server]Unknown host machine name.
2: In odbcDriverConnect("DSN=sqlserver01;UID=javier.zaurin;PWD=5R2fav3hgmG08zC_") :
[RODBC] ERROR: state 08001, code 0, message [FreeTDS][SQL Server]Unable to connect to data source
3: In odbcDriverConnect("DSN=sqlserver01;UID=javier.zaurin;PWD=5R2fav3hgmG08zC_") :
ODBC connection failed
然后我找到了Installation of RODBC/ROracle packages on OS X Mavericks。我去了www.iodbc.org并下载了10.6的软件包。按照那里的描述解压缩它,将头文件(sql.h和sqlext.h)放在/usr/include
目录中。由于在解压缩我从此处https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.6.sdk/usr/lib/libiodbc.a下载的包后找不到文件libiodbc.a
文件,并将其放入/usr/lib
目录。
在此阶段,sql.h
和sqlext.h
位于/usr/include
和libiodbc.a
/usr/lib
。然后我跑:
install.packages("RODBC",type = "source")
一切似乎都有效。然后键入
ch1 <- odbcConnect(dsn="sqlserver01", uid="username", pwd="password")
Warning messages:
1: In odbcDriverConnect("DSN=sqlserver01;UID=javier.zaurin;PWD=5R2fav3hgmG08zC_") :
[RODBC] ERROR: state 01000, code 20013, message [FreeTDS][SQL Server]Unknown host machine name.
2: In odbcDriverConnect("DSN=sqlserver01;UID=javier.zaurin;PWD=5R2fav3hgmG08zC_") :
[RODBC] ERROR: state 08001, code 0, message [FreeTDS][SQL Server]Unable to connect to data source
3: In odbcDriverConnect("DSN=sqlserver01;UID=javier.zaurin;PWD=5R2fav3hgmG08zC_") :
ODBC connection failed
如果有任何帮助,如果我删除了libtdsodbc.so
或在Driver=/usr/local/lib/libtdsodbc.so
输入了不同的内容,我收到了错误消息:
In odbcDriverConnect("DSN=sqlserver01;UID="username";PWD="password") :
[RODBC]错误:状态IM003,代码1606396032,消息[iODBC] [驱动程序管理器]无法加载指定的驱动程序
在这个阶段,我真的不知道接下来该做什么。任何有关如何让RODBC在小牛队工作的帮助他都会非常感激。即使暗示从头开始。