2016-02-01 27 views
8

[post originale]Collegare R per spostamento verso il rosso con RPostgreSQL su Mac 10.11.3

ho visto un paio di simili SO domande, ma non credo che nessuno di loro sono legati al sistema operativo.

Per farla breve, questo è quello che vedo quando provo a stabilire una connessione ssl con Redshift.

library(RPostgreSQL) 
drv <- dbDriver("PostgreSQL") 
con <- dbConnect(drv, 
       host = "XXXXXXXX.us-east-1.redshift.amazonaws.com", 
       port = 5439, 
       user = "XXXXXXXX", 
       password = "XXXXXXXX", 
       dbname = "db1") 

> Error in postgresqlNewConnection(drv, ...) : 
    RS-DBI driver: (could not connect [email protected] on dbname "db1") 

Ho provato quanto segue e nessuno di loro ha funzionato.

  1. Connect to Redshift via SSL using R
  2. Importing files from PostgreSQL to R
  3. Connect to Postgres via SSL using R
  4. https://groups.google.com/forum/#!topic/rpostgresql-dev/ELnVUJqjDbk

Ho un nodo di EC2 (Ubuntu) in AWS e un altro Mac Pro in carica, così ho cercato di utilizzare lo stesso codice connettersi da entrambi.

Il sistema Linux funziona con copia & che incolla lo stesso identico codice. Ecco il Sys.info() sul server Linux:

sysname            Linux 
release         3.13.0-48-generic 
version  #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015 
nodename         ip-xx-xxx-xx-xx 
machine            x86_64 
login            unknown 
user             bcui 
effective_user          bcui 

Tuttavia, il Mac Pro non riuscita con l'esatto messaggio di errore stesso. Ecco l'Mac Sys.info() (stesso che il mio computer portatile Mac):

sysname            Darwin 
release            15.3.0 
version      Darwin Kernel Version 15.3.0: 
          Thu Dec 10 18:40:58 PST 2015; 
         root:xnu-3248.30.4~1/RELEASE_X86_64 
nodename         bcui-MBP.local 
machine            x86_64 
login             bcui 
user             bcui 
effective_user          bcui 

Mi chiedo cosa potrebbe essere diverso tra la configurazione Mac e Linux che causa questo messaggio di errore?

[Aggiornamento 2016/02/10]

Ho provato a disinstallare tutti i file correlati R e, quindi reinstallare R da homebrew:

brew tap homebrew/science 
brew install R 

messaggio di errore Same:

> Error in postgresqlNewConnection(drv, ...) : 
    RS-DBI driver: (could not connect [email protected] on dbname "db1") 

FYI, posso collegarmi ad altri cluster Redshift non-ssl usando lo stesso codice, quindi potrebbe essere qualcosa relativo a openssl su Mac.

[Aggiornamento 2016/02/11]

Maggiori informazioni da @ commento di MasashiMiyazaki:

ho usato psql via CLI per la connessione e funziona benissimo. Inoltre, posso anche connettermi con successo usando il modulo Python psycopg2. Tuttavia, dovrò disabilitare questa linea da .bash_profile in modo per loro di lavorare:

export DYLD_LIBRARY_PATH=/usr/lib:$DYLD_LIBRARY_PATH 
+0

prega fatemi sapere se avete bisogno di ulteriori informazioni sul sistema, in modo che possa fornire nel PO. – Boxuan

+0

Hai mai provato "psql" (comando client PostgreSQL) per accedere a Redshift dal tuo computer MacOS? –

+0

@MasashiMiyazaki Sì, ho usato 'psql' per connettersi e funziona correttamente. Inoltre, ho anche provato il modulo Python 'psycopg2' e funziona anche bene. – Boxuan

risposta

3

Facendo un salto nel buio qui. Hai provato RPostgres?

installarlo in questo modo

# install.packages("devtools") 
devtools::install_github("RcppCore/Rcpp") 
devtools::install_github("rstats-db/DBI") 
devtools::install_github("rstats-db/RPostgres") 

Poi provarlo

library(DBI) 
library(RPostgres) 

con <- dbConnect(RPostgres::Postgres(), 
      host = "XXXXXXXX.us-east-1.redshift.amazonaws.com", 
      port = 5439, 
      user = "XXXXXXXX", 
      password = "XXXXXXXX", 
      dbname = "db1") 
+0

L'ultima volta che ho provato questo e non ha funzionato, e funziona questa volta. Non sono sicuro di cosa è cambiato. – Boxuan

+0

Fantastico! Sono contento che funzioni. – JackStat

+0

funziona ancora nel 2017 – lowndrul