您需要在系统和 ssh 服务器之间建立端口转发。
将以下内容添加到您的~/.ssh/config
文件中:
Host mysql-tunnel-website.com
LocalForward 3306 localhost:3306
Run Code Online (Sandbox Code Playgroud)
我强烈建议为此使用 SSH 密钥。 Github 的 SSH 密钥指南非常好。我不是 R 编码员,但 R 可能不喜欢在调用中交互输入密码的需要,system()
而 SSH 密钥(当无密码或添加到 ssh 代理时)消除了这种需要。
现在您应该能够在 R 中启动隧道:
Host mysql-tunnel-website.com
LocalForward 3306 localhost:3306
Run Code Online (Sandbox Code Playgroud)
这会将 website.com 的本地主机端口 3306 映射到 ssh 客户端的本地主机端口 3306,从而允许您在 ssh 客户端系统上运行与在远程 website.com 系统上运行的代码相同的代码。
您的 R 代码需要指向host=localhost
and port=3306
(这应该是默认值)。
如果远程 SQL 服务器不是由 website.com 的本地主机(端口 3306)提供服务,只需将 更改为相对于可从 website.com 访问的localhost:3306
适当组合。server:port
如果您无法在 ssh 客户端系统上使用端口 3306(也许您在本地运行 MySQL?),您可以通过首先将其更改3306
为任何其他端口来转发到其他端口(我倾向于在前面加上一个数字,例如13306
)并且然后请务必port=13306
在 R 代码中指定备用端口(例如 )。
归档时间: |
|
查看次数: |
5493 次 |
最近记录: |