【发布时间】:2013-10-24 05:23:48
【问题描述】:
我正在寻找一种方法,允许我使用 SSH 隧道连接到 R 中的 MySQL 服务器(而不是文件);我假设它需要 RCurl 和 RODBC 的组合,但我似乎无法让它正常工作。
我遇到了this post 和this post,它们谈论使用 SSH 连接到特定文件或表,但我希望将其用作 Shiny 应用程序的一部分,该应用程序将根据来自的输入执行不同的 SQL 查询用户,这将需要连接到服务器而不是特定文件。
我假设代码看起来与x = scp("remote.ssh.host.com", "/home/dir/file.txt", "My.SCP.Passphrase", user="username") 类似,但我是否可以将"/home/dir/file.txt" 替换为odbcConnect() 语句,或者将其替换为我要访问的特定数据库的端口号?
编辑:我用于常规 odbcConnect() 的行是 odbcConnect(dsn, uid = "userid", pwd = "password")。部分问题是,我正在 Windows 上开发它,但它将被部署到 Linux 服务器(由其他人处理),所以我正在努力弄清楚我的 server.R 代码中究竟需要使用什么连接到数据库。
【问题讨论】:
-
嗯,R 运行在什么操作系统上?如果您在 Windows 上运行,则可以先使用 PuTTy 设置隧道,然后连接到隧道。如果您使用的是 Mac OS 或 Linux,则可以使用 SSH 命令运行设置隧道,您可以从 R 调用该命令。
-
另外,当您不需要需要隧道时,您能否添加您通常用来连接到 MySQL 服务器的线路?
-
@nograpes 我刚刚添加了一个编辑来解决您的两个 cmets。