目标是使用SSH隧道将 R 连接到 PostgreSQL 。
尝试使用库<panel>
<div>panel { label }</div>
<script>
this.label = opts.label
</script>
</panel>
和RPostgreSQL
时失败了。我找不到传递SSH隧道参数(代理主机,代理用户和私钥)的方法。
我想知道是否有办法在db查询字符串中以某种方式指定这些SSH参数?也许另一种出路?
答案 0 :(得分:2)
这是我使用的代码示例:
首先,设置一个ssh隧道 - 这适用于AWS EC2实例:
ssh -i 'YOURKEY.pem' -N -L 1234:YOURDATABASEHOST:5432 YOURUSER@YOURAWSINSTANCE
然后在R:
library(RPostgreSQL)
conn <- dbConnect(RPostgreSQL::PostgreSQL(), dbname = 'MYREMOTEDBNAME', host = '127.0.0.1', port = 1234, password = 'MYREMOTEPASSWORD', user = 'MYREMOTEUSER')
正如您所看到的,关键是在某种远程实例和远程数据库之间建立隧道。然后使用此本地托管的隧道(因此,127.0.0.1作为主机)和指定的端口(在这种情况下为1234)。