M1芯片MacBook上R Studio连接Snowflake ODBC失败求助
M1芯片MacBook上R Studio连接Snowflake ODBC失败问题
问题描述
在搭载M1芯片的MacBook上已安装Snowflake驱动及ODBC组件,但无法通过R Studio连接Snowflake ODBC。
使用的连接配置代码:
con <- DBI::dbConnect(odbc::odbc(), Driver = '/opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib', Server = <工作提供的URL>, UID = <用户名>, Trusted_Connection = "True", authenticator = "externalbrowser", Database = <数据库名>)
运行代码后出现错误:
Error: nanodbc/nanodbc.cpp:1021: 00000: [Snowflake][ODBC] (1159) Unable to locate SQLGetPrivateProfileString function.
解决方法
- 确认架构匹配:M1为ARM架构,需确保R Studio是原生ARM版本(而非Rosetta模拟的x86版本)。可在R Studio中运行
sessionInfo(),查看running under字段确认是否为aarch64-apple-darwin;同时Snowflake驱动需选择通用架构版(universal)。 - 配置ODBC数据源文件:手动创建
~/.odbc.ini文件,写入以下配置(替换占位符):
[Snowflake] Driver = /opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib Server = <工作提供的URL> UID = <用户名> Authenticator = externalbrowser Database = <数据库名>
修改R连接代码,直接通过数据源名称连接:
con <- DBI::dbConnect(odbc::odbc(), "Snowflake")
- 设置ODBC环境变量:打开终端执行以下命令,之后重启R Studio:
export ODBCINI=~/.odbc.ini export ODBCSYSINI=/etc
- 更新ODBC管理器与驱动:Mac推荐使用iODBC作为ODBC管理器,确保其适配ARM架构;同时重新下载安装最新版Snowflake ODBC驱动,安装时勾选“Install for me only”避免权限问题。
内容的提问来源于stack exchange,提问作者Erin Asks
相关产品推荐
相关产品推荐

