在 R 中使用 ssh 隧道连接到数据库 PostSQL
Posted
技术标签:
【中文标题】在 R 中使用 ssh 隧道连接到数据库 PostSQL【英文标题】:Connect to database PostSQL using ssh tunnel in R 【发布时间】:2018-04-24 02:03:13 【问题描述】:目标是使用 SSH 隧道将 R 连接到 PostgreSQL。
刚刚尝试使用库 RPostgreSQL
和 DBI
失败。我没有找到传递 SSH 隧道参数(代理主机、代理用户和私钥)的方法。
我想知道是否有办法以某种方式在 db 查询字符串中指定这些 SSH 参数?也许还有其他出路?
【问题讨论】:
***.com/questions/38212693/… 【参考方案1】:这是我使用过的代码示例:
首先,设置一个 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)。
【讨论】:
以上是关于在 R 中使用 ssh 隧道连接到数据库 PostSQL的主要内容,如果未能解决你的问题,请参考以下文章
在 node-mysql 中使用 SSH 隧道连接到 MySQL
在 Java 中通过 SSH 隧道连接到 Mongo 数据库
使用 Python 通过 SSH 隧道连接到远程 PostgreSQL 数据库