- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想使用 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=localhost
和 port=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/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!