当前位置: 首页 > 知识库问答 >
问题:

在R中使用ssh隧道连接到数据库PostSQL

汝跃
2023-03-14

目标是使用SSH隧道将R连接到PostgreSQL。

刚刚用库RPostgreSQL和DBI进行了不成功的尝试。我没有找到传递SSH隧道参数(代理主机、代理用户和私钥)的方法。

我想知道是否有办法在db查询字符串中指定这些SSH参数?也许还有别的出路?

共有1个答案

笪健
2023-03-14

下面是我使用的代码示例:

首先,设置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)。

 类似资料:
  • 修复(编辑代码以反映我所做的更改) 我正在尝试使用Java通过SSH隧道连接到Mongo数据库。 我正在使用Mongo驱动程序3.0.2和jcraft(JSch)创建一个SSH隧道。我的想法是: 通过SSH连接到托管MongoDB安装的机器 设置从本地端口到远程MongoDB端口的端口转发 远程连接到MongoDB 我的代码如下所示: 这段代码在运行时, 不 EDIT:有效。 连接到SSH服务器工

  • 我正在使用IntelliJ社区版和JPA Buddy开发一个Java项目(基于Spring Boot 2.6.x)。我想使用JPA Buddy进行实体实用程序和Liquibase集成。 生产数据库(MySQL 5.7)只能通过ssh隧道访问。 有没有办法使用ssh隧道配置数据库连接?如何从生产数据库生成变更日志? 谢谢米奇

  • 问题内容: 我的凭据与Robomongo完美搭配,但无法与node.js建立连接, 我尝试使用ssh2和tunnel-ssh npm模块建立连接,但均失败。 -mongo连接不需要密码 -ssh连接使用pem密钥进行 这是我与ssh2模块一起使用的代码,我可以正确建立隧道,但是mongo连接失败 和代码的隧道SSH 我不确定在建立隧道之后是使用常规的MongoDB连接字符串还是将数据库引用为loc

  • 我尝试用java连接到Oracle DB,但我遇到了错误,我搜索了很多次,我没有找到帮助我的东西。 当我尝试使用SQL developer连接时,它成功了。 因此,我尝试编写java代码来访问DB,它成功地连接到SSH,但当到达时,我遇到了错误: “java.sql.sqlException:Io异常:Oracle错误ORA-12650” 这是我的职能

  • 本文向大家介绍python3 使用ssh隧道连接mysql的操作,包括了python3 使用ssh隧道连接mysql的操作的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 补充知识:Python 使用SSHTunnel 连接内网mysql数据库 准备: 主要模块 sshtunnel, pip install sshtunnel 其余模块 pymysql,playh