因此,两天前,我安装了MySQL版本8.0.17,并在我的MACOS版本10.14.5的本地服务器上安装了一个数据库。我在RStudio中有一个数据文件,我想将它写入我刚才创建的数据库中的唯一一个表中,但是由于一个错误,我无法这样做。
我能够建立到这个数据库的连接,并且它能够找到表,但是当它到达DBI::dbWriteTable函数时,我得到了这个错误:
.local中的错误(conn,语句,.):无法运行语句:此MySQL版本不允许使用所使用的命令
我曾在网站上看到过其他类似的问题,但它们都在2-7岁左右,一直无法帮助我。
# {r database connection}
con <- dbConnect(RMySQL::MySQL(),
dbname = "dbname",
host = "xxx.x.x.x",
port = xxxx,
user = "user",
password = "password",
)
dbWriteTable(con, name= "table", value= df, append= TRUE, temporary= FALSE)
dbDisconnect(con)我不太清楚这一进程应在何处进行。如有任何建议或开源数据库替代方案,将不胜感激。
发布于 2019-11-14 02:50:08
将@jholmes注释转换为一个答案,这对我来说是有效的(我很难使用dbWriteTable和MySQL 8.0.18发送任何数据格式):
# {r database connection}
con <- dbConnect(RMySQL::MySQL(),
dbname = "dbname",
host = "xxx.x.x.x",
port = xxxx,
user = "user",
password = "password",
)
dbSendQuery(con, "SET GLOBAL local_infile = true;") # <--- Added this
dbWriteTable(con, name= "table", value= df, append= TRUE, temporary= FALSE)
dbDisconnect(con)为了使新行工作,我还必须授予RMySQL用户SUPER特权。
似乎应该有一个更好的方法,要么通过更改RMySQL或DBI中的某些内容。
https://stackoverflow.com/questions/57758553
复制相似问题