如何在M1苹果芯片Mac上成功安装Snowflake的ODBC驱动?
M1芯片Mac Snowflake ODBC驱动故障解决方案
问题1:iodbctest测试提示no matching architecture in universal wrapper
该报错核心原因为你使用的2.24.1版本Snowflake ODBC驱动仅支持x86_64架构,M1芯片原生运行 iodbc 工具时无法识别对应架构镜像,可通过以下两种方案解决:
- 优先升级ODBC驱动到2.25.0及以上版本,该版本起驱动提供适配arm64架构的通用二进制包,可原生运行在M1芯片设备上
- 若必须使用2.24.1版本,可通过Rosetta 2转译运行测试终端:打开访达→应用程序→实用工具,右键点击「终端」选择「显示简介」,勾选「使用Rosetta打开」,重启终端后再次执行iodbctest测试即可
你可运行以下命令验证当前驱动支持的架构:
lipo -info /opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib
适配M1的驱动会输出 x86_64 arm64,若仅输出x86_64说明当前驱动无arm64支持。
问题2:R语言DBI连接报错Unable to locate SQLGetPrivateProfileString function
该报错是因为Snowflake ODBC驱动依赖iODBC框架的库函数,系统或R会话未正确加载对应库路径导致,可按以下步骤修复:
- 首先确认已安装iODBC运行库,若使用Homebrew可直接执行命令
brew install libiodbc完成安装 - 编辑当前用户的shell配置文件(zsh对应
~/.zshrc,bash对应~/.bash_profile),添加以下环境变量:
export ODBCINI=/etc/odbc.ini export ODBCSYSINI=/etc export DYLD_LIBRARY_PATH=/opt/snowflake/snowflakeodbc/lib:/usr/local/lib:$DYLD_LIBRARY_PATH
- 执行
source ~/.zshrc(或对应bash配置文件)让环境变量生效,完全重启R会话后再次尝试连接 - 若仍报错,可修改
/etc/odbcinst.ini中的Snowflake驱动配置,补充DriverODBCVer = 03.80参数,同时确认Setup配置项路径和Driver路径一致,均指向/opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib
内容的提问来源于stack exchange,提问作者kgilvi3
相关产品推荐
相关产品推荐

