Mac M1系统下R连接Amazon Redshift驱动文件未找到求助
解决Mac OS M1上R连接Amazon Redshift时驱动找不到的问题
1. 确认驱动架构与安装路径
M1为arm64架构,需保证Redshift ODBC驱动与系统架构匹配:
- 用Homebrew安装arm版驱动时,路径通常为
/opt/homebrew/lib/libredshiftodbc.dylib - 若安装x86版驱动(依赖Rosetta兼容),路径一般是
/usr/local/lib/libredshiftodbc.dylib - 手动下载驱动时,务必选择对应arm64的安装包,避免跨架构混用导致文件找不到。
2. 检查并配置ODBC驱动注册文件
ODBC驱动需通过odbcinst.ini注册才能被识别,操作步骤:
- 终端执行命令查看已注册驱动:
odbcinst -q -d - 若未发现
Amazon Redshift条目,编辑用户级配置文件~/.odbcinst.ini(或系统级/etc/odbcinst.ini),添加以下内容(替换为你的实际驱动路径):[Amazon Redshift] Driver=/opt/homebrew/lib/libredshiftodbc.dylib Setup=/opt/homebrew/lib/libredshiftodbcsupport.dylib UsageCount=1 - 保存后再次执行
odbcinst -q -d,确认驱动已成功注册。
3. 调整R连接代码
若驱动别名仍无法被识别,直接使用驱动绝对路径替代driver参数:
conn <- connect_redshift( host = "my_host", database = "database_name", user = "user_name", pass = "password", port = 12345, driver = "/opt/homebrew/lib/libredshiftodbc.dylib" )
4. 处理Rosetta兼容(仅适用于x86驱动)
如果安装的是x86版驱动,需确保R和终端通过Rosetta运行:
- 右键R.app → 显示简介 → 勾选「使用Rosetta打开」
- 右键终端.app → 显示简介 → 勾选「使用Rosetta打开」,之后在该终端中启动R运行连接代码。
5. 验证驱动可用性
安装unixODBC后,用isql命令测试ODBC连接是否正常:
isql -v "Amazon Redshift" user_name password
若连接成功,说明驱动配置无误,回到R中重新运行连接代码即可。
内容的提问来源于stack exchange,提问作者DNuser9483780
相关产品推荐
相关产品推荐

