在带有 Apple Silicon M2 CPU 的 MacOS Ventura 上,我已经按照 Microsoft 提供的说明为 SQL Server 安装了 Microsoft ODBC 驱动程序 18:https://learn.microsoft.com/en-us/sql/connect/ odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos
在 R 中使用标准 DBI 连接字符串时:
db <- config::get("localhost")
conn <- DBI::dbConnect(odbc::odbc(),
Driver = "ODBC Driver 18 for SQL Server",
Server = "localhost",
UID = db$uid,
PWD = db$pwd,
Port = 1433,
Database = db$database
运行此代码时出现以下错误:
Error: nanodbc/nanodbc.cpp:1021: 00000: [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 18 for SQL Server': file not found
我感觉这说明我的R和macOS中的驱动注册器的连接有问题。不幸的是,我无法确定如何解决这个问题。
有没有人有这方面的经验,可以建议我如何连接?
感谢您的帮助!
尝试:
odbcinst -j
然后你会看到:
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /Users/emehex/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
请在 /etc/odbcinst.ini 中检查您的 ODBC 版本(您应该会看到):
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/usr/local/lib/libmsodbcsql.17.dylib
UsageCount=1
如果没有,请升级到 ODBC Driver 18
可能只是您的安装路径不在 R 查找的位置。在Rstudio文档中,建议可以将odbc驱动程序路径添加到.Renviron。
我发现简单地添加这个就足以解决问题:
# in ~/.Renviron
ODBCSYSINI=/opt/homebrew/etc