gpt4 book ai didi

macos - 如何使用 unixodbc 和 freetds 在 Mac 上安装 RODBC?

转载 作者:行者123 更新时间:2023-12-01 09:02:34 24 4
gpt4 key购买 nike

经过相当广泛的搜索后,我注意到许多人很难找到一个从头到尾的指南来回答这个问题。 (至少 one question 指出存在解决方案,但建议的解决方案并没有解决这样一个事实,即默认情况下,RODBC 会尝试针对 iODBC 进行编译,而 iODBC 不包含在 Yosemite 中。)我刚刚完成了这个过程,所以我想我会在这里记录它,希望它可以使其他人受益。我正在连接到 SQL Server 数据库。

最佳答案

使用 Homebrew作为我的 OS X 包管理器,我可以通过以下步骤安装 RODBC(假设我已经安装了 R)。

  1. 安装unixodbc:

    $ brew install unixodbc
  2. 安装 freetds(如有必要,将 /usr/local/Cellar/unixodbc/2.3.2_1 替换为您的 unixodbc 目录):

    $ brew install --with-tdsver=8.0 --with-msdblib --with-unixodbc=/usr/local/Cellar/unixodbc/2.3.2_1 freetds
  3. 配置您的 freetds 安装(以下是最小配置文件):

    freetds.conf

    # server specific section
    [global]
    ; tds version = 8.0
    ; dump file = /tmp/freetds.log
    ; debug flags = 0xffff
    ; timeout = 10
    ; connect timeout = 10
    text size = 64512

    [TESTSQL]
    # insert the actual host below
    host = <xxx.xx.x.xx>
    port = 1433
    tds version = 8.0
  4. 测试 freetds 配置:

    $ tsql -H `<xxx.xx.x.xx>` -p 1433 -U `<username>` -P `<password>`
    locale is "en_US.UTF-8"
    locale charset is "UTF-8"
    using default charset "UTF-8"
    1> exit
  5. 配置您的 unixodbc 安装(以下是最小配置文件):

    $ sudo vim /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini

    odbcinst.ini

    [MSSQL]
    Description = Microsoft SQL Server driver
    Driver = /usr/local/Cellar/freetds/0.95.18/lib/libtdsodbc.so

    (和另一个最小的安装文件):

    $ sudo vim /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbc.ini

    odbc.ini

    [ODBC Data Sources]
    TESTSQL = Test database

    [TESTSQL]
    Driver = MSSQL
    Servername = TESTSQL
    Port = 1433
    Database = TMSEPRD
    TDS_Version = 8.0
  6. 使用 isql 测试新配置:

    $ isql TESTSQL `<username>` `<password>`
    +---------------------------------------+
    | Connected! |
    | |
    | sql-statement |
    | help [tablename] |
    | quit |
    | |
    +---------------------------------------+
    SQL> quit
  7. 创建指向主目录中文件的符号链接(symbolic link):

    $ ln -vs /usr/local/Cellar/freetds/0.95.18/etc/freetds.conf ~/.freetds.conf
    $ ln -vs /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbc.ini ~/.odbc.ini
    $ ln -vs /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini ~/.odbcinst.ini
  8. 通过将以下代码行附加到文件来查找和修改您的 RProfile 文件(将 /usr/local/include 替换为 include包含您的 sql.hsqlext.h 文件的目录;如果该目录不存在,则可能不需要第二行):

    $ vim /Library/Frameworks/R.framework/Versions/3.2/Resources/library/base/R/Rprofile
    Sys.setenv(ODBC_INCLUDE="/usr/local/include")
    Sys.setenv(ODBC_LIBS="/usr/local/lib")
  9. 现在将 RODBC 包源(您可以下载 here)下载到您的下载文件夹。

  10. 打开一个新的 R 控制台 session 并安装包(将 RODBC_1.3-12.tar.gz 替换为您的包源名称):

    install.packages("~/Downloads/RODBC_1.3-12.tar.gz", repos=NULL, type="source")

这个包现在应该可以工作了:

> library(RODBC)
> myconn <- odbcConnect("TESTSQL", uid="<userid>", pwd="<password>")

感谢 Jared FolkinsGabi Huiber帮助确定 R 默认在哪些目录中查找 RODBC 的必需文件。

关于macos - 如何使用 unixodbc 和 freetds 在 Mac 上安装 RODBC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31907247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com