使用RMySQL关闭活动连接

R-E*_*ast 14 mysql r

根据我今天早些时候的问题,我怀疑我有一个未闭合连接的问题,阻止数据被注入我的MySQL数据库.数据被允许进入当前未使用的表(因此我怀疑许多打开的连接阻止上传到该特定表).

我在Ubuntu服务器上使用RMySQL将数据上传到MySQL数据库.

我正在寻找一种方法来a)确定连接是否打开b)如果它们关闭它们.该命令exec sp_whoexec sp_who2来自sql命令行的命令返回sql代码错误.

另一个注意事项:我能够连接,完成上传过程,并成功结束R进程,当我只尝试该表时,服务器上没有数据(通过sql命令行检查).

(顺便说一下:如果所有其他方法都失败了,只需删除该表并创建一个具有相同名称的新表来修复它吗?这会非常痛苦,但可行.)

谢谢你的帮助!

Sta*_*ich 22

一个. dbListConnections( dbDriver( drv = "MySQL"))

dbDisconnect( dbListConnections( dbDriver( drv = "MySQL"))[[index of MySQLConnection you want to close]]).关闭所有:lapply( dbListConnections( dbDriver( drv = "MySQL")), dbDisconnect)

是的,你可以只重写表格,当然你会丢失所有数据.或者你可以指定dbWriteTable(, ..., overwrite = TRUE).

我也将与其他选项玩,喜欢row.names,header,field.types,quote,sep,eol.我在RMySQL中也有很多奇怪的行为.我记不清具体细节了,但是当我做错了什么时似乎没有错误消息,比如忘记设置row.names.HTH


Taz*_*Taz 12

关闭所有活动连接:

dbDisconnectAll <- function(){
  ile <- length(dbListConnections(MySQL())  )
  lapply( dbListConnections(MySQL()), function(x) dbDisconnect(x) )
  cat(sprintf("%s connection(s) closed.\n", ile))
}
Run Code Online (Sandbox Code Playgroud)

执行: dbDisconnectAll()