RMySQL:关闭没有句柄的连接

tch*_*rty 7 mysql r rmysql

我正在尝试使用RMySQL,并且意外地创建了一个没有句柄的连接.

dbConnect(MySQL(), user = "foo", password = "bar")
connLocalDB = dbConnect(MySQL(), user = "foo", password = "bar")
Run Code Online (Sandbox Code Playgroud)

请注意,第一次调用的返回不会分配给任何内容.现在,当我做一个时,dbListConnections(MySQL())我看到两个连接:

> dbListConnections(MySQL())
[[1]]
<MySQLConnection:0,0>

[[2]]
<MySQLConnection:0,1>
Run Code Online (Sandbox Code Playgroud)

然后我尝试了这个:

> dbDisconnect(dbListConnections(MySQL())[[1]])
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个:

> dbListConnections(MySQL())
[[1]]
Error in .local(dbObj, ...) : 
  internal error in RS_DBI_getConnection: corrupt connection handle
Run Code Online (Sandbox Code Playgroud)

如何安全地终止未分配句柄的连接?

mri*_*713 1

通常,为了创建连接、获取查询数据然后关闭连接,我使用以下函数:

getDataSql <- function( query ) {
  con = dbConnect(RMySQL::MySQL(), dbname  =  "dbname", host = "host", user = "username", password = "pasword", port = "port")
  result <- dbGetQuery(con, query)
  dbDisconnect(con)
  result
}
Run Code Online (Sandbox Code Playgroud)