gpt4 book ai didi

mysql - RStudio Shiny 错误 mysqlNewConnection 最多 16 个连接

转载 作者:可可西里 更新时间:2023-11-01 07:49:40 26 4
gpt4 key购买 nike

我有一个 Shiny 的服务器正在运行,它连接到 MySQL 数据库。到目前为止工作正常的页面现在给我这个错误:

Error in mysqlNewConnection(drv, ...) : RS-DBI driver: 
(cannot allocate a new connection -- maximum of 16 connections already opened)

这让我想知道我应该如何在交互式网页中处理打开的 mysql 连接。

首先,dbConnect(MySQL(),...)语句应该在shinyServer方法之前还是在里面?

如果我在 server.R 的末尾添加一个 dbDisconnect(dbcon),那么我会收到一个 Error: expired MysqLConnection 错误页面,并且不显示任何数据。

我也在 shinyServer 方法内部或之前尝试过这个:

 on.exit(dbDisconnect(dbcon), add=TRUE)

 on.exit(dbDisconnect(dbcon))

因此,页面本身的代码仅在我保持连接打开时才对我有效,我想这可能会导致上述最大连接数错误。

在 Shiny 中如何处理这些情况?

最佳答案

您可以在 global.R 文件中或在 shinyServer 外部设置连接 https://groups.google.com/forum/#!topic/shiny-discuss/0VjQc2a6z3M 中的示例是:

library(RMySQL)

getConnection <- function(group) {

if (!exists('.connection', where=.GlobalEnv)) {
.connection <<- dbConnect(MySQL(), group=group)
} else if (class(try(dbGetQuery(.connection, "SELECT 1"))) == "try-error") {
dbDisconnect(.connection)
.connection <<- dbConnect(MySQL(), group=group)
}

return(.connection)
}

这定义了一个函数来检查全局环境中的连接。如果找不到,它会创建一个。如果找到但无法连接,则重新启动连接。没有给出明确的断开连接,所以我猜连接最终会超时。

关于mysql - RStudio Shiny 错误 mysqlNewConnection 最多 16 个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com