mysql - 在命令行中使用 R 编写 mysql 的导出过程

标签 mysql r cmd

我正在使用命令行从 mysql 导出查询结果:

SET sql=C:\Program Files\MySQL\MySQL Workbench CE 6.1.4\mysql.exe
SET p_s=C:\Rtools\bin\sed.exe

"%sql%" --skip-secure-auth --host=xxx.xxx.xx.x --user=myuser --password=mypass  mydb <c:/Temp/my_query.txt | "%p_s%" 's/\t/;/g'  >  C:/Temp/myfile.txt

这对我来说非常有用。现在我想在 R 中编写这个过程。我正在尝试这样的事情:

b<-"SET sql=C:\\Program Files\\MySQL\\MySQL Workbench CE 6.1.4\\mysql.exe"
a<-"SET p_s=C:\\Rtools\\bin\\sed.exe"
s<-  ' "%sql%" --skip-secure-auth --host=xxx.xxx.xx.x --user=myuser--password=mypass  mydb <c:/Temp/my_query.txt | "%p_s%" \'s/\\t/;/g\'  >  C:/Temp/myfile.txt'

system(a)
system(b)
system(s)

但这行不通。如果我运行:

try(system(a, intern = TRUE))

它返回:系统错误(a,intern = TRUE):找不到“SET” 一些建议?

最佳答案

我按照@hrbrmstr 的建议解决了创建 .BAT 文件的问题

p1<-"SET sql=C:\\Program Files\\MySQL\\MySQL Workbench CE 6.1.4\\mysql.exe"
p2<-"SET p_s=C:\\Rtools\\bin\\sed.exe"

host<-"xxx.xxx.xx.x"
user<-"myuser"
password<-"mypass"
db<-"mydb"
sep<-";"
file<-"C:/Temp/myfile.txt"

query<- "SELECT * FROM mytable limit 100;"

cmd<-paste('"%sql%" --skip-secure-auth --host=',host,' --user=',user,' --password=',password,' ',db,' <c:/Temp/query.sql | "%p_s%" \'s/\\t/',sep , '/g\'  >', file,sep="")
cmd<-paste(p1,p2,cmd, sep="\n")

setwd("c:\\temp")
write(query,"query.sql")
write(cmd,"mycommand.bat")
system("mycommand.bat")

关于mysql - 在命令行中使用 R 编写 mysql 的导出过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28276665/

相关文章:

mysql - 选择进入不工作

php - 如何搜索mysql DATE并返回结果以及日期和数据?

php - 使用 php 的剩余时间脚本

r - R 中的典型相关分析

windows - 批处理 - 启动函数的 IF ELSE 条件不管怎样都会执行

PHP MYSQL 多个 if 语句进行多个更新

r - download.file() 在 Windows 上生成 "invalid"zip 文件,但在 Mac 上工作正常

r - 在组内计算值变化前后的数量,为每个独特的转变生成新变量

windows - pushd\\network\path 返回 CMD 不支持 UNC 路径作为当前目录

windows - 将计算机名称和用户名传递到批处理脚本中