如何修复 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
权限。
似乎应该有更好的方法,可以通过更改 RMySQL
或 DBI
.
中的某些内容
两天前我安装了 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
权限。
似乎应该有更好的方法,可以通过更改 RMySQL
或 DBI
.