从shinyapps.io连接到MySQL

时间:2018-02-27 19:59:26

标签: shiny rmysql

我有一个工作的Shiny App,可以通过System.out.println(doc.select("div > div:eq(1)")); 查询我可以在本地计算机上运行的远程MySQL数据库。

MySQL服务器有whitelisted shinyapps.io IP addresses.

当我将它部署到shinyapps.io时,我收到此错误:

enter image description here

。全球

pool

.server

library(shiny)
library(DBI)
library(pool)
library(DT)

pool <- dbPool(
  drv      = RMySQL::MySQL(),
  dbname   = "gw_observatory",
  host     = "sage.metro.ucdavis.edu",
  username = "gw_observatory", 
  password = "password"
)
onStop(function() {
  poolClose(pool)
})

的.ui

shinyServer(function(input, output, session) {

  output$data_table <- renderDataTable({

    DT::datatable(pool %>% tbl("small_data") %>% collect())

  })

1 个答案:

答案 0 :(得分:0)

更新:现在可以使用了。我的系统管理员添加了一个端口,这解决了问题。

对于遇到此问题的任何人,我建议采取以下步骤:

  1. 确保您的shinyapp在本地运作
  2. 如果您在shinyapps.io上遇到部署错误,请确保:

    • 您的数据库已将白名单shinyappsio IP地址
    • 列入白名单
    • 您的主机是外部公共IP或网址,而非内部网站
    • 一些机构拥有非常防守的防火墙。尝试将端口添加到数据库中。
  3. 我希望这有助于某人下线!

    pool <- dbPool(
      drv      = RMySQL::MySQL(),
      dbname   = "some_name",
      host     = "123.45.678.901",
      username = "some_username", 
      password = "password",
      port     = 1234567
    )