如何在 shinyapps 中 运行 RMySQL(在本地工作正常)
How to run RMySQL in shinyapps (working fine locally)
我有一个奇怪的问题:
使用 Shiny 的 RMySQL(运行 本地)我可以毫无问题地从 MySQL 数据库(小 table,只有几行)检索数据。但是一旦部署了应用程序 (shinyapps.io),查询结果包含零行(但列名没问题)。查看 shinyapps.io 日志:
Warning in dbFetch(rs, n = n, ...) : error while fetching rows
我做错了什么?之前完全相同的东西在工作,现在我做不到 运行。 MySQL 连接似乎正常。
library(shiny)
library(DBI)
ui <- fluidPage(
numericInput("nrows", "Enter the number of rows to display:", 5),
tableOutput("tbl")
)
server <- function(input, output, session) {
output$tbl <- renderTable({
conn <- dbConnect(
drv = RMySQL::MySQL(),
dbname = "***",
host = "***",
username = "***",
password = "***")
on.exit(dbDisconnect(conn), add = TRUE)
dbGetQuery(conn, paste0(
"SELECT * FROM datasets LIMIT ", input$nrows, ";"))
})
}
shinyApp(ui, server)
编辑:
当我使用 Shiny 虚拟数据库 (from this example) 时,它工作正常,因此 MySQL 看起来有些问题,但无法弄清楚是什么...有什么想法吗?
dbname = "shinydemo",
host = "shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com",
username = "guest",
password = "guest")
编辑2
我尝试了一切。创建新的 table、新的数据库(虽然主机相同)、不同的 shinyapps 帐户、使用所有更新包的全新 R 安装,仍然是同样的问题。当应用程序在本地 运行 时,一切都很好。但是来自 shinyapps - 错误和零结果(colnames 除外)。
好的,我不知道为什么,但看起来更改 table 引擎可以解决问题
ALTER TABLE table_name ENGINE = InnoDB
我有一个奇怪的问题: 使用 Shiny 的 RMySQL(运行 本地)我可以毫无问题地从 MySQL 数据库(小 table,只有几行)检索数据。但是一旦部署了应用程序 (shinyapps.io),查询结果包含零行(但列名没问题)。查看 shinyapps.io 日志:
Warning in dbFetch(rs, n = n, ...) : error while fetching rows
我做错了什么?之前完全相同的东西在工作,现在我做不到 运行。 MySQL 连接似乎正常。
library(shiny)
library(DBI)
ui <- fluidPage(
numericInput("nrows", "Enter the number of rows to display:", 5),
tableOutput("tbl")
)
server <- function(input, output, session) {
output$tbl <- renderTable({
conn <- dbConnect(
drv = RMySQL::MySQL(),
dbname = "***",
host = "***",
username = "***",
password = "***")
on.exit(dbDisconnect(conn), add = TRUE)
dbGetQuery(conn, paste0(
"SELECT * FROM datasets LIMIT ", input$nrows, ";"))
})
}
shinyApp(ui, server)
编辑: 当我使用 Shiny 虚拟数据库 (from this example) 时,它工作正常,因此 MySQL 看起来有些问题,但无法弄清楚是什么...有什么想法吗?
dbname = "shinydemo",
host = "shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com",
username = "guest",
password = "guest")
编辑2 我尝试了一切。创建新的 table、新的数据库(虽然主机相同)、不同的 shinyapps 帐户、使用所有更新包的全新 R 安装,仍然是同样的问题。当应用程序在本地 运行 时,一切都很好。但是来自 shinyapps - 错误和零结果(colnames 除外)。
好的,我不知道为什么,但看起来更改 table 引擎可以解决问题
ALTER TABLE table_name ENGINE = InnoDB