gpt4 book ai didi

r - 使用 dplyr 连接到外部服务器/数据库

转载 作者:行者123 更新时间:2023-11-29 13:29:40 25 4
gpt4 key购买 nike

我正在尝试使用 dplyr 连接到位于外部服务器中的数据库

src_postgres(dbname = NULL, host = NULL, port = NULL, user = NULL, 
password = NULL, ...)

到目前为止一切顺利,我已经获得了连接到数据库所需的所有参数。问题是数据库所在的服务器也需要身份验证(用户名和密码)。

我尝试使用 ?pipe 创建连接,但似乎它只在尝试从远程服务器提取文件 时有效。

有什么线索吗?

最佳答案

好消息!我一直这样做,并不难 :)

两步:

1。创建SSH key 并放在远程服务器上

来自 https://serverfault.com/posts/241593/edit

在本地机器上生成 ssh key :

$ ssh-keygen -t rsa -b 2048

然后按 Enter 输入空密码以得到:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.

将您的 key 复制到目标服务器

ssh-copy-id id@server

检查这是否适用于 ssh 'id@server',并检查文件夹 .ssh/authorized_keys 中的 ssh key 。

您应该知道可以使用 $ ssh id@server 登录

2。将您的数据库端口转发到本地计算机

你应该知道能够使用

ssh -fN id@server

启动 SSH 连接并将端口转发到本地主机。您可能需要将 -p 参数调整为 ssh 以选择正确的端口。

一旦您可以成功转发端口,您应该能够从您的本地 机器使用src_postres() 来访问远程数据库。

你也可以用

开始你的R脚本
system("ssh -fN id@server")

或者把命令放在你的.Rprofile

3。 (可选)

此外,也许您不想在脚本中使用您的 idserver 地址,例如,如果您打算将它们提供给客户,或者将它们放在在 github 上。

然后,使用以下内容编辑或创建文件(在本地计算机上).ssh/config:

Host my_ssh
User id
Hostname server

然后你就可以使用 ssh -fN my_ssh

关于r - 使用 dplyr 连接到外部服务器/数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26806734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com