无法在 MacOS (CPU M2) 上的 R 中打开 lib 'ODBC Driver 18 for SQL Server'

问题描述 投票:0回答:2

在带有 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中的驱动注册器的连接有问题。不幸的是,我无法确定如何解决这个问题。

有没有人有这方面的经验,可以建议我如何连接?

感谢您的帮助!

r sql-server odbc dbi
2个回答
0
投票

尝试:

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


0
投票

可能只是您的安装路径不在 R 查找的位置。在Rstudio文档中,建议可以将odbc驱动程序路径添加到.Renviron。

我发现简单地添加这个就足以解决问题:

# in ~/.Renviron
ODBCSYSINI=/opt/homebrew/etc
© www.soinside.com 2019 - 2024. All rights reserved.