如何修复 R 中的 "Error in .local(conn, statement, ...) : could not run statement: The used command is not allowed with this MySQL version" 错误?

How to fix "Error in .local(conn, statement, ...) : could not run statement: The used command is not allowed with this MySQL version" error in R?

两天前我安装了 MySQL 版本 8.0.17 并在我的 MACOS 版本 10.14.5 上的本地服务器上设置了一个数据库。我在 RStudio 中有一个数据框,我想写入我刚刚创建的数据库下唯一的 table,但由于错误

而无法这样做

我能够建立到这个数据库的连接并且它能够找到 table 但是当它到达 DBI::dbWriteTable 函数时我得到这个错误:

Error in .local(conn, statement, ...) : could not run statement: The used command is not allowed with this MySQL version

我在网站上看到过其他类似的问题,但它们都在 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 权限。

似乎应该有更好的方法,可以通过更改 RMySQLDBI.

中的某些内容