无法使用 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