在 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

刚刚尝试使用库 RPostgreSQLDBI 失败。我没有找到传递 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 数据库

Robot Framework:通过 SSH 隧道连接到 PostgreSQL 数据库

如何以编程方式连接到需要 SSH 隧道的远程数据库服务器?

如何使用 IntelliJ 和 JDBC 建立 SSH 隧道并连接到数据库?