【发布时间】:2018-02-03 06:06:00
【问题描述】:
我正在尝试连接到 MySQL 服务器,该服务器受到连接到给定服务器的限制。我正在尝试通过此限制服务器进行连接,但未进行物理连接。
通过命令行,这可以通过创建 SSH 连接来实现,之后我可以从命令行运行 MySQL 命令。例如:
ssh myUsername@Hostname
myUsername@Hostname's password:
[myUsername@Host ~]$ mysql -h mySQLHost -u mySQLUsername -p mySQLPassword
但是,我希望从 R 中连接到 MySQL 数据库,因此我可以发送查询以将表读取到我当前的 R 会话中。通常我会在命令行中运行 R 会话,但服务器上没有安装 R。
例如,当我物理连接到服务器时,我有这段代码可以工作(填写的信息已更改):
myDB <- dbConnect(MySQL(), user="mySQLUsername", password="mySQLPassword", dbname="myDbname", host="mySQLHost")
本质上,我想通过管道运行相同的命令,以便 myDB 对象是一个有效的 mySQL 连接。
我一直在尝试从 R 中通过管道进入限制服务器,并且能够读取 csv 文件。例如:
dat <- read.table(pipe('ssh myUsername@Hostname "cat /path/to/your/file"'))
这会提示我输入密码,然后读取表格(正如建议的那样,here)。但是,我不确定如何将其转换为 MySQL 连接。例如,我应该将管道作为host 参数的一部分吗?这是我的第一个想法,但一直无法实现。
任何帮助将不胜感激。
【问题讨论】: