Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RMySQL:关闭没有句柄的连接_Mysql_R_Rmysql - Fatal编程技术网

RMySQL:关闭没有句柄的连接

RMySQL:关闭没有句柄的连接,mysql,r,rmysql,Mysql,R,Rmysql,我正在尝试,并且意外地创建了一个没有句柄的连接 dbConnect(MySQL(), user = "foo", password = "bar") connLocalDB = dbConnect(MySQL(), user = "foo", password = "bar") 请注意,第一次调用的返回没有分配给任何对象。现在,当我执行dbListConnections(MySQL())时,我看到两个连接: > dbListConnections(MySQL()) [[1]] <M

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

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>
但是,然后,我得到了这个:

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

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

通常,对于创建连接、获取查询数据并关闭连接,我使用以下功能:

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

getDataSql在下一个版本(即github上的版本)中,您不必担心这个问题@hadley最奇怪的事情。刚刚更新,现在它给我提供了dbListConnections(MySQL())#在(函数(类,fdef,mtable)中列出打开的连接错误:找不到签名为“MySQLDriver”的函数“dbListConnections”的继承方法“ @哈德利”出现了各种其他错误,包括无法使用home目录中的配置文件执行无密码登录。@哈德利接着查看是否可以用该软件的DEV版本来帮助诊断这些错误。@哈德利,我将乐于支持RMySQL和DBI问题页。请注意,我考虑API更改。没有先前的弃用警告的。
getDataSql <- function( query ) {
  con = dbConnect(RMySQL::MySQL(), dbname  =  "dbname", host = "host", user = "username", password = "pasword", port = "port")
  result <- dbGetQuery(con, query)
  dbDisconnect(con)
  result
}