我正在尝试使用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
如何安全地终止未分配句柄的连接?
答案 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
}