#mysql #r #shiny #dbi #rmysql
#mysql #r #блестящий #dbi #rmysql
Вопрос:
У меня странная проблема: использование RMySQL из Shiny (работает локально) У меня нет проблем с извлечением данных из базы данных MySQL (небольшая таблица, всего несколько строк). Но как только приложение будет развернуто (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 (из этого примера), она работает нормально, так что похоже на какую-то проблему с MySQL, но не могу понять, какую… Есть идеи?
dbname = "shinydemo",
host = "shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com",
username = "guest",
password = "guest")
ПРАВКА2
Я перепробовал все. Создайте новую таблицу, новую базу данных (хотя и на том же хостинге), другую учетную запись shinyapps, новую установку R со всеми обновленными пакетами, все та же проблема. Когда приложение работает локально, все в порядке. Но из shinyapps — ошибка и нулевые результаты (кроме colnames).
Ответ №1:
Хорошо, я понятия не имею, почему, но похоже, что изменение механизма таблиц устраняет проблему
ALTER TABLE table_name ENGINE = InnoDB