所以从两天前开始,我安装了MySQL 8.0.17版,并在我的MACOS 10.14.5版上的本地服务器上设置了一个数据库。我在RStudio中有一个数据框,我想写入到我刚刚创建的数据库下的唯一表中,但是由于错误而无法执行此操作]
我能够建立与此数据库的连接,并且能够找到该表,但是当它到达DBI::dbWriteTable
函数时出现此错误:
。local(conn,statement,...)中的错误:无法运行语句:此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)
我不确定该过程在哪里进行。任何建议或开源数据库替代品将不胜感激。
将@jholmes注释转换为答案,这对我有用(我很难使用dbWriteTable
和MySQL 8.0.18发送any数据帧:
# {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
中的内容。