尝试使用RODBC将R连接到PostgreSQL时出错

时间:2011-04-27 16:59:50

标签: macos postgresql r rodbc

我正在尝试使用RODBC连接到R.但是,当我跑

ch <- odbcConnect("rails_dev", uid="skline", pwd="d0gsleep")

我收到此错误:

In odbcDriverConnect("DSN=rails_dev;UID=skline;PWD=d0gsleep") :
  [RODBC] ERROR: state IM002, code 0, message [iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded

有什么想法?我是新手,不知道下一步该做什么......非常感谢你!'

注意我使用的是Mac OSX

2 个答案:

答案 0 :(得分:2)

编辑:下面的答案已经过时,因为CRAN上不再提供一些提到的软件包。我把它留在这里作为参考。

可以在以下问题中找到更多近期信息:

How to connect R with PostgreSQL on OSX 10.10.2?


要在Mac上连接到PostgreSQL,您可以使用包RpgSQL。请务必阅读installation notes,因为必须设置PostgreSQL安装才能使用JDBC。这是迄今为止最简单的方法。如果安装PostgreSQL,则在安装过程结束时启动堆栈生成器(请参阅installation guide)。或者,您可以在安装后使用Stack Builder(包含在postgreSQL安装中)添加额外的组件。在Database驱动程序下,您应该找到postgresql JDBC。

评论中提到的rdbi软件包已从CRAN中删除,并且不再维护。

如果确实需要使用ODBC,则需要PostgreSQL的驱动程序,并且必须知道计算机上的ODBC实现。司机Jim M.给你的是一个选择,另一个是Openlinksw的司机或pgFoundry上的“官方”司机。通常,您应该能够像使用JDBC驱动程序一样从Stack Builder下载ODBC驱动程序:在标题数据库驱动程序下,您也可以使用postgresql ODBC。

对于最新版本的OSX,您需要显然安装自己的odbc管理器。在评论中提到的一个Eelke旁边,你也有来自Apple的那个here。在此管理器中,您可以指定驱动程序位置等,并通过ODBC设置与PostgreSQL的连接。如何执行此操作取决于您使用的管理器,并在帮助文件中进行了说明。阅读FAQ of iODBC中的相关部分和ODBC on Mac部分,总是很有趣。

在旁注中:在R中,您可以使用RODBC包的odbcDataSources()命令检查可以找到哪些DSN。如果没有提到Postgresql,你知道你必须先查看你的设置。

答案 1 :(得分:0)

根据您要连接的数据库,Actual Technologies包含用于开源数据库(MySQL,PostgreSQL),Oracle以及Microsoft Access等的Mac OSX驱动程序,成本约为35美元。无论您是要为计算机上的所有用户(系统DSN)创建连接,还是针对特定于用户的级别,都可以直接在ODBC管理员中进行设置,因为有一个向导将介绍基本步骤。