首先,請確保您可以連接到遠程數據庫,而不R,爲 例如,使用pgadmin3或psql的(見本link1和link2關於pgAdmin的/ PSQL /遠程/端口轉發更多的想法)。
然後,沿着這些路線嘗試:
dbname <- "myname"; dbuser <- "myname"; dbpass <- "IWillNotTell";
dbhost <- "remotehostname"; dbport <- 5432;
如果遠程主機withing在同一本地網(即本地 主機myhost.host.edu),那麼,下面將正常運行好:
dbhost <- "remote"
library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host=dbhost, port=dbport, dbname=dbname,
user=dbuser, password=dbpass)
query = 'SELECT * FROM TABLENAME'
dbGetQuery(con, query)
sqldata<-dbGetQuery(con, query)
summary(sqldata)
SQLDATA將是一個數據幀
重要的是防火牆和訪問數據庫。我建議,使用 pgadmin3來確保您可以連接到服務器。
如果本地防火牆不允許連接到postgresql服務器 端口,那麼您將需要使用ssh隧道 - 根據遠程主機的遠程連接可能得到 相當慢。例如:
假設服務器允許收聽僅 「本地主機」(這是WRT到 服務器),則:
SSH -L 22222:本地主機:5432 @ MYNAME的remotehostname
將轉發您的客戶端上的22222端口連接到遠程的5432端口。 再次,使用pgadmin3在這一點上,使你可以連接。
然後設置
DBHOST < - 「本地主機」; dbport < - 「22222」
並使用相同的dbConnect調用。 dbConnect調用成功後,所有的sql結果將在R本地
來源
2015-06-25 19:13:47
pmr