gpt4 book ai didi

mysql - 如何将 ShinyApps 与 MySQL 从本地主机同步到公共(public)主机

转载 作者:行者123 更新时间:2023-11-29 05:05:13 25 4
gpt4 key购买 nike

我目前正在使用 R Shiny 开发应用程序并完成我的 ShinyApps,现在我正在尝试将应用程序部署到 Shinyapps.io 以便多个用户可以访问和使用它,但我有一个问题用于部署。

我的 Apps 是关于 Pharmacy 管理的,它控制 CRUD 操作,所以很明显它使用这些选项配置(在本地运行)与 db Connection 绑定(bind)

options(mysql = list(
"host" = "127.0.0.1",
"port" = 3306,
"user" = "root",
"password" = ""
))

还有一件事,为了连接到数据库,我通常会启动我的 XAMPP 应用程序并打开 mysql admin,这样我的应用程序就可以在本地连接数据库。它在部署之前完美无瑕地工作

但是当我尝试在 delpoy 之后在 shiny.io 中运行它时它立即崩溃了(我的意思是自动断开连接)。所以我确实尝试像这样公开更改主机 ip,(我试图在用户本地计算机上获取 ip 地址)

configA <- system("ipconfig", intern=TRUE)
configB <- configA[grep("IPv4", configA)]
configC <- gsub(".*? ([[:digit:]])", "\1", configB)

options(mysql = list(
"host" = configC,
"port" = 3306,
"user" = "root",
"password" = ""
))

ConfigC 变量存储 IPv4 地址以获取本地机器上的公共(public) IP,但这些仍然不起作用,我在下面的链接中附上了登录

如何在 Shinyapps.io 中连接和同步我的应用程序与 MySQL?我使用 DBI 和 RMySQL 包..我需要先托管 MySQL 才能同步我的应用程序吗?任何人都可以向我介绍如何逐步解释吗?提前谢谢你

这是我来自 shinyapps.io 的错误日志 http://textuploader.com/dulzh

最佳答案

对于遇到同样问题且不知道如何解决的人,我将分享对我有用的内容:

1) 我建议将您的 MySQL 数据库托管到 AWS(亚马逊网络服务),它是免费的,而且性能非常好,可以在线同步任何网络服务更新,尤其是 shinyapps.io , 首先创建一个帐户

2)使用包括信用卡在内的完整信息验证您的 AWS 账户,以便您可以访问其服务

3) 点击服务 > 数据库 > RDS

4) 然后您将被重定向到 AWS RDS Dasboard,在这里您可以管理您的 MySQL 数据库的实例,要创建一个新实例,请单击 Launch DB Instance

5) 这是我的实例设置:
引擎选项:MySQL

用例:生产 - MySQL

数据库实例类:db.r4.large 2vCPU,15.25 GiB RAM(我相信这个设置是主观上基于我们的 CPU 性能)

多 AZ 部署:否

存储类型:预配置 IOPS

分配的存储空间:100 GiB

预置 IOPS:取决于您分配的存储空间(我使用 4000)

6) 然后在Settings选项卡中,填写你的db instance identifier,master username & password,之后点击Next,有advanced configuration,再次填写db name 然后你会想要检查所有日志报告,希望以后更容易维护,完成后 > 启动数据库实例

7)等到您的实例状态变为可用(不断刷新以了解)

8)实例可用后,检查实例并向下滚动直到找到连接部分,记住并保存端点、安全组规则、主用户名和密码实例 来自细节部分

9) 在您的 server.R 中,编辑您的 MySQL 连接选项,从本地主机到 AWS RDS..

options(mysql = list(
"host" = "your Endpoint",
"port" = 3306,
"user" = "your master username of db instance",
"password" = "your master password of db instance"
))

10) 在将您的 MySQL 数据库从本地主机部署到 AWS RDS 之前,首先转到您的 AWS > Services > VPC > Security Group >(单击其中一个被 actively used by你的实例)>入站规则

11) 在入站规则中,您必须将您或其他 PC 访问您的 shinyapps 的所有外部 IP 列入白名单 http://whatsmyip.org ,并将所有基于此 http://docs.rstudio.com/shinyapps.io/applications.html#accessing-databases-with-odbc 的 shinyapps IP 地址列入白名单在 3.8.4 节中

12) 现在最后,无法直接将 MySQL 数据库从本地主机部署到 AWS RDS,我建议安装 MySQL Workbench 来完成,安装完成后,启动 MySQL WorkBench

13) 创建新的 MySQL 连接然后填写连接表单:连接名称:(任何你喜欢的)连接方式:TCP/IP主机名:(粘贴您的端点)端口 3306用户名:(您的数据库实例的主用户名)密码:(你的数据库实例的主密码)

14) 成功连接到 AWS RDS 后,打开您的连接,然后 MySQL WorkBench UI 将打开,从 Navigator > Management > Data 导入您的 .bak 文件(MySQL 数据库)导入 > 选择从独立文件导入 > 浏览您的文件> 然后开始导入

15) 您已成功将数据库部署到 AWS RDS!您可以在 WorkBench 中使用查询来查看所有表/数据库信息

16) 运行您的 ShinyApps 并测试它,然后完成!

(如果您曾经发现消息无法连接到您的 AWS RDS 主机,可能是您的外部 IP 已更改为新 IP,要解决此问题,您需要在第 10 步中将您的 IP 再次列入白名单到 AWS VPC)

希望这些对你有所帮助!

关于mysql - 如何将 ShinyApps 与 MySQL 从本地主机同步到公共(public)主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49707681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com