mysql - R Shiny 中的多个(同时)用户可以访问 MySQL 数据库

标签 mysql r shiny

我有一个 Shiny 应用程序(托管在 shinyapps.io 上),它将用户对某些操作按钮的点击记录到 MySQL 数据库中。我希望就以下几点提出一些建议:

  • 放置dbConnect 代码的位置(即在shinyServer 函数内部或外部)
  • 何时关闭连接(因为我遇到了打开连接太多的问题)

每次添加到数据库中只会添加一个新行,因此用户不会访问和修改相同的元素。我问这个的原因是我遇到了多个用户无法同时使用该应用程序的问题(错误“与服务器断开连接”),我不确定它是否来自 MySQL 连接。

谢谢!

最佳答案

有人在评论中发布了有关 pool 包的信息,正是为了这个目的!这是我的 server.R 代码的相关部分:

library(shiny)
library(RMySQL)
library(pool)

pool <- dbPool(
  drv = RMySQL::MySQL(),
  user='username', 
  password='password', 
  dbname='words', 
  host='blahblahblah')

shinyServer(function(input, output) {
  ## function to write to databse
  writeToDB <- function(word, vote){
    query <- paste("INSERT INTO word_votes (vote, word) VALUES (", vote, ", '", word, "');", sep="")
    conn <- poolCheckout(pool) 
    dbSendQuery(conn, query) 
    conn <- poolReturn(conn)

  ## rest of code
  }

我添加了 poolCheckoutpoolReturn 以成功运行并防止泄漏。

关于mysql - R Shiny 中的多个(同时)用户可以访问 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471725/

相关文章:

r - 如何将 Unicode 输出写入 .csv 以在 Excel 中使用?

R Shiny DateRange 仅输入月份年份

r - 将我所在的数据表的哪一页保存到 R 中的变量中

R Spark 一次从文件夹中读取一个文件,与 Shiny 集成

mysql - 大型数据集的最佳数据库引擎

python - Python、Django 和标准输出的奇怪问题

r - 使用 base R,如何创建一个 "joy plot"(又名山脊线图),其中有许多分布在彼此之上并具有垂直偏移?

r - 如何指示Roxygen2中的整理顺序?

mysql - {"timestamp": 1567422726395 ,"status": 404 ,"error": "Not Found" ,"message": "No message available" ,"path": "/SpringRestfulWebServiceHibernate/add/" }

php - MySQL 头痛,我应该还是不应该?