【问题标题】:Connect via RMySQL to AWS通过 RMySQL 连接到 AWS
【发布时间】:2015-10-05 19:56:28
【问题描述】:

我在 AWS 上安装了一个学习管理系统 (Moodle) 的实例。 LMS 使用 MySQL。我想使用 R 从表中收集数据并使用以下代码:

library(DBI)

con <-  dbConnect(RMySQL::MySQL(), 
                  username="public1",
                  password="test",
                  host="127.0.0.1",
                  port=3306,
                  dbname="bitnami_moodle"
                  )

dbReadTable(conn = con, name = "mdl_user")

dbDisconnect(con)

只要我通过 PuTTY 使用隧道,它就可以正常工作。但是稍后我想在一个单独的实例上使用 Shiny,我需要建立一个直接连接。

我浏览了一些讨论,但对于我的理解水平来说,它们不够详细。谁能给我解释一下怎么做?

【问题讨论】:

    标签: amazon-web-services shiny moodle shiny-server rmysql


    【解决方案1】:

    一旦您确定愿意承担所涉及的安全风险,您将执行以下操作。

    1. 打开您的安全组以允许来自端口 3306 的流量。如果您单击 AWS 控制面板中的实例,您将看到一个与之关联的安全组。您可以单击该组以查看当前打开的端口(可能来自任何地方的端口 22)。您需要对其进行编辑以将端口 3306 添加到“已批准端口”列表中。如果您需要更广泛的访问权限并且确信您的 MySQL 用户名/密码足够强大,可以打开 MySQL公众(如果数据是敏感的,这很危险......)。
    2. 在端口 3306 上打开 VM 的防火墙(如果存在 - 许多 AWS 映像没有启用防火墙)。
    3. 最近的一些 MySQL 发行版将访问限制为不接受来自外部主机的连接(仅限本地)。如果您收到有关无法从远程主机连接的错误消息,则需要查找如何在您的发行版上打开 MySQL 以进行外部连接。

    另一种安全方法是将 SSH 隧道从您的 R 机器连接到远程 MySQL 机器。如果您想这样做,请查找“SSH 隧道”。这将是最安全的,但管理起来也很麻烦。

    我能想到的最后一个选择是在远程机器上运行 RStudio Server 之类的东西,这样您就不需要打开 MySQL 访问权限。

    【讨论】:

      【解决方案2】:

      与往常一样,当有人向您展示它时,这很容易。我在这里找到了关键信息:

      https://www.youtube.com/watch?v=O2-9sKSCk4w

      谢谢威尔逊18!

      我现在可以从任何位置连接到远程 MySQL 服务器,而无需使用 SSH 或隧道。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-19
        • 2021-10-08
        • 1970-01-01
        • 2012-04-30
        • 2020-01-26
        • 2020-01-26
        • 1970-01-01
        • 2015-11-21
        相关资源
        最近更新 更多