2011-04-27 14 views
5

Estoy intentando conectarme a R usando RODBC. Sin embargo, cuando corroError al intentar conectar R a PostgreSQL usando RODBC

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

consigo este error:

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 

¿Alguna idea? Soy nuevo en esto y no sé qué hacer a continuación ... ¡muchas gracias de antemano!

Nota Estoy utilizando Mac OS X

+0

Supongo que está utilizando ODBC Manager para configurar la conexión ODBC. ¿Obtiene un error cuando usa su funcionalidad Test para probar la conexión con el uid y la contraseña que especificó anteriormente? – Harlan

+0

Tengo que ser honesto, soy un principiante y ni siquiera sé cómo usar ODBC. ¿Puede dirigirme a un recorrido sobre cómo configurar esto? – Spencer

+2

ODBC requerirá que tenga un controlador ODBC para postgresql y algo para configurarlo. No sé si el controlador existe. El administrador ODBC para OSX se puede encontrar aquí: http://www.odbcmanager.net/, pero tal vez sea mejor utilizar un enlace directo como: http://rdbi.sourceforge.net/ – Eelke

Respuesta

2

EDITAR: La respuesta a continuación no está actualizada, ya que algunos de los paquetes mencionados ya no están disponibles en CRAN. Lo dejo aquí para referencia.

información más reciente puede encontrarse en la siguiente pregunta:

How to connect R with PostgreSQL on OSX 10.10.2?


Para la conexión a PostgreSQL en Mac, puede utilizar el paquete RpgSQL. Asegúrese de leer installation notes, ya que su instalación de PostgreSQL debe estar configurada para usar JDBC. Esta es, de lejos, la forma más fácil. Si instala PostgreSQL, inicie el Creador de pila al final del proceso de instalación para hacerlo (consulte installation guide). Alternativamente, puede usar el Creador de pila (incluido en la instalación de postgreSQL) después de la instalación para agregar componentes adicionales. Debajo de los controladores de la base de datos debe encontrar postgresql JDBC.

El paquete rdbi mencionado en los comentarios, se elimina de CRAN y afaik no se actualiza.

Si realmente necesita utilizar ODBC, necesita un controlador para PostgreSQL, y debe ser conocido por la implementación de ODBC en su computadora. El controlador que Jim M. le dio es una opción, otro es los controladores de Openlinksw o el "oficial" en pgFoundry. Normalmente, debería poder descargar un controlador ODBC de Stack Builder como lo hace para un controlador JDBC: bajo el encabezado de los controladores de base de datos también tiene un ODBC postgresql.

Para las versiones más recientes de OSX, necesita instalar su propio administrador de odbc aparentemente. Junto al que Eelke mencionó en los comentarios, también tienes el de Apple, here. En este administrador, puede especificar la ubicación del controlador, etc., y configurar la conexión a PostgreSQL a través de ODBC. Cómo hacer esto, depende del administrador que usa y se explica en los archivos de ayuda. Siempre es interesante leer la sección correspondiente en el FAQ of iODBC y las secciones en ODBC on Mac.

En una nota al margen: en R, puede verificar qué DSN se pueden encontrar utilizando el comando odbcDataSources() del paquete RODBC. Si Postgresql no se menciona allí, usted sabe que primero tiene que ver su configuración.

+0

Parece que los paquetes que se ofrecen ahora están desactualizados. ¿Hay alguna otra forma mejor de conectar R y PostgreSQL? He planteado una nueva pregunta con detalles: http://stackoverflow.com/q/29317192/604388 –

+0

@LA_ Esto de hecho está un poco desactualizado. Gracias por notarlo, agregaré la actualización a la respuesta –

0

Dependiendo de la base de datos que desea conectarse, Actual Technologies tiene controladores para Mac OS X para las bases de datos de código abierto (MySQL, PostgreSQL), Oracle, así como Microsoft Access, etc, y cuesta alrededor de $ 35. La configuración en el administrador de ODBC es sencilla, ya sea que desee crear una conexión para todos los usuarios en la máquina (DSN del sistema) o para un nivel específico del usuario, ya que hay un asistente que recorrerá los pasos básicos.

Cuestiones relacionadas