Mac M1设备连接Snowflake报libSnowflake.dylib找不到错误求助
M1系列Mac Snowflake ODBC驱动连接报错解决方案
该问题核心是M1芯片Mac的Homebrew安装路径和Intel架构存在差异,同时旧版Snowflake ODBC驱动未适配arm64架构导致动态库加载失败,可按以下步骤排查解决:
- 确认驱动架构兼容性
执行命令file /opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib查看驱动支持的架构,输出需同时包含x86_64和arm64才是通用适配版本,若仅包含x86_64,需下载最新通用版Snowflake ODBC驱动重装。 - 修正odbcinst.ini配置
M1设备unixodbc的系统配置路径为/opt/homebrew/etc/odbcinst.ini,打开该文件确认Snowflake驱动配置的路径完全匹配实际libSnowflake.dylib路径,参考配置如下:
[Snowflake]
Description = Snowflake ODBC Driver
Driver = /opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib
- 配置动态库加载环境变量
在当前用户的shell配置文件(/.zshrc或/.bash_profile)中加入以下两行配置:export DYLD_LIBRARY_PATH=/opt/snowflake/snowflakeodbc/lib/universal:$DYLD_LIBRARY_PATHexport ODBCINI=/opt/homebrew/etc/odbc.ini
执行source ~/.zshrc(对应你使用的shell类型)让配置生效,重启终端后再启动Rails服务。 - 多用户权限适配
如果存在拥有系统权限的独立用户需要使用该配置,可将上述环境变量写入系统级配置文件/etc/zshrc或/etc/profile对所有用户生效,同时执行sudo chmod -R 755 /opt/snowflake确保所有用户对驱动目录有读取和执行权限。 - Rosetta转译兜底
若以上步骤均无法解决,可右键点击终端应用,勾选「使用Rosetta打开」,重启终端后再启动Rails服务,通过x86转译兼容旧版驱动。
内容的提问来源于stack exchange,提问作者raktim bhowmick
相关产品推荐
相关产品推荐

