2016-02-01 12 views
8

[Original Post]Connect R mit RPostgreSQL auf Mac 10.11.3

ich ein paar ähnliche Fragen SO gesehen haben Rotverschiebung, aber ich glaube nicht, dass einer von ihnen zu OS verwandt sind.

Lange Rede kurzer Sinn, das ist, was ich sehe, wenn ich versuche, eine SSL-Verbindung zu Redshift zu etablieren.

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") 

Ich habe Folgendes versucht und keiner von ihnen hat funktioniert.

  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

Ich habe einen EC2-Knoten (Ubuntu) in AWS und einem anderen Mac Pro im Büro, also versuchte ich den gleichen Code zu verwenden, von beiden verbinden.

Das Linux-System funktioniert mit Kopieren & Einfügen der exakt gleichen Code. Hier ist die Sys.info() auf dem Linux-Server:

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 

jedoch der Mac Pro mit der exakt gleichen Fehlermeldung fehlgeschlagen. Hier ist der Mac Sys.info() (wie bei meinem Mac Laptop):

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 

Ich frage mich, was zwischen dem Mac und Linux-Konfiguration anders sein könnte, die diese Fehlermeldung verursacht?

[Update 2016.02.10]

ich versucht habe, R und alle zugehörigen Dateien deinstallieren und dann neu installieren R von Homebrew:

brew tap homebrew/science 
brew install R 

gleiche Fehlermeldung:

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

FYI, ich kann mit anderen nicht-ssl Redshift-Cluster mit dem gleichen Code verbinden, so könnte es etwas mit openssl auf Mac verwandt sein.

[Update 2016.02.11]

Weitere Informationen von @ MasashiMiyazaki Kommentar:

I psql via CLI verwendet haben, um eine Verbindung und es funktioniert gut. Darüber hinaus kann ich auch eine Verbindung erfolgreich mit dem Python-Modul psycopg2 herstellen. Ich werde aber auf deaktivieren diese Zeile aus .bash_profile haben, um für sie zu arbeiten:

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

Bitte lassen Sie mich wissen, wenn Sie zusätzliche Systeme Informationen benötigen, so dass ich im OP zur Verfügung stellen kann. – Boxuan

+0

Haben Sie schon einmal "psql" (PostgreSQL-Clientbefehl) ausprobiert, um von Ihrem MacOS-Rechner auf Ihre Redshift zuzugreifen? –

+0

@ MasashiMiyazaki Ja Ich habe 'psql' verwendet, um eine Verbindung herzustellen, und es funktioniert gut. Außerdem habe ich auch das Python-Modul 'psycopg2' ausprobiert und es funktioniert auch gut. – Boxuan

Antwort

3

einen Schuss im Dunkeln hier nehmen. Hast du versucht RPostgres?

es installieren wie so

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

es dann testen

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

Das letzte Mal habe ich das versucht und es hat nicht funktioniert, und es funktioniert dieses Mal. Nicht sicher, was sich geändert hat. – Boxuan

+0

Super! Ich bin froh, dass es funktioniert. – JackStat

+0

Funktioniert noch in 2017 – lowndrul