RMySQL:关闭没有句柄的连接

时间:2015-04-06 06:23:50

标签: mysql r rmysql

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

dbConnect(MySQL(), user = "foo", password = "bar")
connLocalDB = dbConnect(MySQL(), user = "foo", password = "bar")

请注意,第一次通话的返回不会分配给任何内容。现在,当我做dbListConnections(MySQL())时,我看到两个联系:

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

[[2]]
<MySQLConnection:0,1>

然后我尝试了这个:

> dbDisconnect(dbListConnections(MySQL())[[1]])
[1] TRUE

然而,我得到了这个:

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

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

1 个答案:

答案 0 :(得分: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
}