无法使用 RPostgreSQL 连接到 AWS Redshift

Posted

技术标签:

【中文标题】无法使用 RPostgreSQL 连接到 AWS Redshift【英文标题】:Can't connect to AWS Redshift using RPostgreSQL 【发布时间】:2013-12-26 16:43:01 【问题描述】:

我无法使用 RPostgreSQL 连接到我的 AWS Redshift 数据库。

有没有人有一个可行的代码示例?

library (RPostgreSQL)
drv <- dbDriver("PostgreSQL")
conn <- dbConnect(drv, "database.us-east-1.redshift.amazonaws.com",  "jeffz", "PsWrd123")    
Error in postgresqlNewConnection(drv, ...) : 
  RS-DBI driver: (could not connect database.us-east-1.redshift.amazonaws.com@PsWrd123 on dbname "database.us-east-1.redshift.amazonaws.com"

Windows 7 驱动程序中的 postgresql-8.4-703.jdbc4 在环境中设置了 jre7 的路径

【问题讨论】:

您应该提供五个参数(主机、端口、数据库名、用户名和密码),但您只提供三个... 示例***.com/questions/12490863/… 【参考方案1】:

我遇到了同样的问题 - 这是一个对我来说“有效”的代码示例

使用库 (RPostgreSQL)

library (RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con1 <- dbConnect(drv, host="hydrogen2.YOURHOST.us-east-1.redshift.amazonaws.com", 
                 port="5439",
                 dbname="mydb", 
                 user="master_user", 
                 password=password)
con1 # check that you have a connection (e.g. <PostgreSQLConnection:(8892,0)>  )
### Make sure AWS has the security/access permissions opened up to allow Port 5439 access from YOUR IP (or all IPs)

使用库(RODBC)

password <- read.table(file="private.txt", header=FALSE) # where I'm holding pw
password <- paste(password[1,1], sep="") #

library(RODBC)
con2 <- odbcConnect("AWS_hydrogen2_source", uid = "master_user", pwd = password) # east region
con2 # works!  if a positive integer, you are connected
odbcGetInfo(con2)

完整代码在这里:

https://dreamtolearn.com/ryan/data_analytics_viz/93

https://github.com/rustyoldrake/AWS_Redshift_S3_R_Interface

* 正如其他人所说 - 如果系统 无法连接 - 确保 AWS 已打开安全/访问权限以允许从您的 IP 访问端口 5439(或所有IP)-默认情况下它们是不打开的,所以如果你不打开它们,你将无法连接

【讨论】:

【参考方案2】:

确保您通过指定允许访问 RDS 安全组 所有 IP 为 0.0.0.0/0

【讨论】:

以上是关于无法使用 RPostgreSQL 连接到 AWS Redshift的主要内容,如果未能解决你的问题,请参考以下文章

使用 RPostgreSQL 和 dplyr 将 R 连接到 Redshift 的理论是啥

R RPostgreSQL 使用 SSL 连接到远程 Postgres 数据库

如何使用 libssl 和 libpg 和 SSL 激活编译 RpostgreSQL

R 在使用 dplyr 或 RPostgreSQL 的模式下访问 redshift 表

无法连接到 aws redshift

无法使用 Fargate 连接到 AWS 网络负载均衡器