我无法使用RPostgreSQL创建到AWS托管的PostgreSQL数据库的SSL连接。
这是我到目前为止所尝试的内容:
在R:
中执行以下操作library(RPostgreSQL)
cert <- paste0("C:/Users/johnr/Downloads/", "rds-combined-ca-bundle.pem")
dbname <- paste0("dbname=", "flargnog", " ", "sslrootcert=", cert, " ", "sslmode=verify-full")
host <- "xxxxxx.xxxxx.us-region-2.rds.amazonaws.com"
con <- dbConnect(dbDriver("PostgreSQL"), user="username", host=host, port=5432, dbname=dbname, password="abcd1234!")
执行最后一个语句后收到错误消息:
Error in postgresqlNewConnection(drv, ...) :
RS-DBI driver: (could not connect username@xxxxxx.xxxxx.us-region-2.rds.amazonaws.com on dbname "flargnog"
如果我将rds.force_ssl设置更改为0(并从dbname中删除ssl内容),则连接正常。
我查看了与此问题相关的Stackoverflow上的其他帖子。 This和this似乎表明由于RPostgreSQL问题而无法建立SSL连接。但是,this post表示您可以。
任何指导都将不胜感激!
答案 0 :(得分:0)
您可以尝试使用例如ssh到rds实例putty并将本地端口5432端口转发到远程端口5432.在R中打开ssh连接后,只需连接到localhost:5432
...
以下是使用putty进行前移的方法:
http://www.akadia.com/services/ssh_putty.html
以下是命令行的工作原理: https://gist.github.com/magnetikonline/3d239b82265398568f31
P.S。:确保您的实例位于接受ssh连接的安全组中 - 端口22