【问题标题】:Access local mysql server with shiny.io使用 shiny.io 访问本地 mysql 服务器
【发布时间】:2014-09-16 21:13:28
【问题描述】:

我正在尝试在 shiny.io 中创建闪亮的应用程序,它需要访问位于我本地计算机中的 MySQL 数据库。是否可以使用 RMySQL 通过 shiny.io 连接到本地数据库?我该怎么做?

【问题讨论】:

    标签: r rmysql shiny


    【解决方案1】:

    我的回答有点“迟到”,但请记住,如果您正在部署到 shiny.io,那么“localhost”将指向 shiny.io,并且那里没有适合您的 mysql :-) 所以您应该必须打开您的 MySQL 服务器并在“主机”变量中使用您的公共 IP 地址。并不是我提议这样做,从安全的角度来看,向公众开放你的 MySQL 服务器是不明智的。如果你按照这种方式,至少,你应该过滤连接,只允许shiny.io的IP地址。

    另一种解决方案 - 在我看来更合理 - 可能是使用已经为您提供持久层的公共服务器,例如 mongohq.com(现在为 compose.io)。他们使用 MongoDB(不是 MySQL),但它可以满足您的需求(您将免费获得 512MB RAM 测试服务器)。您可能想学习 this working example that uses shiny.io and mongo 以启动您的项目。

    【讨论】:

      【解决方案2】:

      用法与常规 R 脚本中的用法基本相同。 你可以把它放在你的 server.R 文件的顶部

      library(RMySQL)
      con = dbConnect(MySQL(), user='myusername', password='mysillypassword', db='dataaa', host='localhost')
      
      query = "SELECT 1"
      result = dbGetQuery(con, query)
      

      现在结果将可用于闪亮应用的其余部分。

      您还可以在响应式函数中构建查询,并动态查询数据库。

      【讨论】:

      • 建议不要将mysql用户名和密码存储在脚本中,而是将它们存储在选项文件中。例如,您可以将密码存储在服务器上闪亮用户的mysql配置文件中:/home/shiny/.my.cnf。另请参阅:MySQL using option filesMariaDB configuring my.cnf
      【解决方案3】:

      在您的 mySQL 数据库中,将 shinyapps.io IP 地址列入白名单

      看到这个helpful post from Rstudio support

      【讨论】:

        猜你喜欢
        • 2020-11-03
        • 2019-01-19
        • 2018-10-21
        • 2014-09-03
        • 2013-02-22
        • 2012-10-10
        • 1970-01-01
        • 2022-08-08
        • 2014-09-17
        相关资源
        最近更新 更多