gpt4 book ai didi

mysql - 通过 SSH 连接到 R 中的 MySQL 数据库

转载 作者:可可西里 更新时间:2023-11-01 08:24:21 27 4
gpt4 key购买 nike

我想使用 RMySQL 包来查询数据库。在 R 脚本中使用 dbConnect()dbGetQuery() 之前,我通常在我的 mac 终端中输入 ssh website.com

我的数据库在防火墙后面,只能在本地访问,据我所知,需要通过 ssh 进入。

是否可以在 R 中完成整个过程?

我试过 system('ssh website.com')) 没有成功

谢谢

最佳答案

您需要在您的系统和 ssh 服务器之间建立一个端口转发。

将以下内容添加到您的 ~/.ssh/config 文件中:

Host mysql-tunnel-website.com
LocalForward 3306 localhost:3306

我强烈建议为此使用 SSH key 。 Github's SSH key guide很不错。我不是 R 编码员,但 R 可能不喜欢在 system() 调用和 SSH key (无密码或添加到 ssh-agent 时)中交互式输入密码的需要.

现在您应该能够在 R 中启动隧道:

system('ssh -f mysql-tunnel-website.com')

这会将 website.com 的本地主机端口 3306 映射到您的 ssh 客户端本地主机的端口 3306,允许您在 ssh 客户端系统上运行与在远程 website.com 系统上运行的代码相同的代码。

您的 R 代码需要指向 host=localhostport=3306(这应该是默认值)。

如果远程 SQL 服务器不是由 website.com 的本地主机和端口 3306 提供服务,只需将 localhost:3306 更改为适当的 server:port 组合可从 website.com 访问的内容。如果您无法在您的 ssh 客户端系统上使用端口 3306(也许您正在本地运行 MySQL?),您可以通过将第一个 3306 更改为任何其他端口(我倾向于在数字前加前缀,例如 13306),然后确保在您的 R 代码中指定备用端口(例如 port=13306)。

关于mysql - 通过 SSH 连接到 R 中的 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47310068/

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