首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >RMySQL: RS_DBI_getConnection中的内部错误:损坏的连接句柄

RMySQL: RS_DBI_getConnection中的内部错误:损坏的连接句柄
EN

Stack Overflow用户
提问于 2015-11-23 20:18:54
回答 1查看 5.6K关注 0票数 5

所以我刚开始连接到我的数据库很好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
con <- dbConnect(
MySQL(),
user = "username", password = "password",
host = "<my amazon web service database server>",
port = 3306
)

所以一切都正常,但是在我闪亮的应用程序上运行了几次/刷新之后,它说我已经打开了16个连接,我不能再打开任何连接。

所以,我试着跑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dbDisconnect(dbListConnections(MySQL()))

然后我得到了这个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dbListConnections(MySQL())
[[1]]TRUE

然后我得到了一个错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error in .local(dbObj, ...) : 
internal error in RS_DBI_getConnection: corrupt connection handle

现在,每当我尝试打开我闪亮的应用程序时,我都会看到datatableoutput上的错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(I query the database to generate this output):
internal error in RS_DBI_getConnection: corrupt connection handle
EN

回答 1

Stack Overflow用户

发布于 2017-08-24 12:39:16

我只是遇到了同样的问题。我就是这样解决的:

我创建了一个连接,然后使用这个连接创建了一些函数。问题是,连接在外部范围内:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
con <- dbConnect(
  MySQL(),
  ...
)

MyFunction <- function(){
  myQuery <- paste("SELECT * FROM ...")
  df <- dbGetQuery(con, myQuery)
  df
}

对我来说,这也很好,但在"16“连接限制后停止工作,就像在您的情况下一样(相同的损坏连接句柄错误)。

解决方案

在函数内部创建连接,并在函数末尾断开连接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MyFunction <- function(){

  con <- dbConnect(
    MySQL(),
    ...
  )

  myQuery <- paste("SELECT * FROM ...")
  df <- dbGetQuery(con, myQuery)

  dbDisconnect(con)
  df
}

现在一切似乎都正常了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33885400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文