gpt4 book ai didi

r - 在 R 中的 shinyapps.io 上托管 Shiny 应用程序时连接到数据库

转载 作者:行者123 更新时间:2023-12-04 17:48:35 26 4
gpt4 key购买 nike

我正在为我的公司创建一个 Shiny 的应用程序,我想在 shinyapps.io 上托管它。该应用程序需要从我公司的数据库中获取数据,我可以在自己的计算机上查询这些数据。但是,我没有将用户名和密码直接放入我的代码中,而是将用户名和密码保存到一个 .my.cnf 文件中,该文件存储在我的主目录中。在我的应用程序中,我通过以下方式连接:

rmysql.settingsfile <- "~/.my.cnf"
rmysql.db1 <- "dbname"
drv <- dbDriver("MySQL")

mydb_connected <- dbConnect(drv, default.file = rmysql.settingsfile, group = rmysql.db1, user = NULL, password = NULL)

这将我连接到数据库。

所有这些代码都在我的 app.R Shiny 应用文件的顶部。不幸的是,在我使用 rsconnect::deployApp() 部署应用程序后,尽管上传成功,应用程序实际上并没有运行,并且我在 shinyapps.io 帐户日志中收到以下错误:

Warning: Error in .local: mysql default file ~/.my.cnf does not exist

我可能可以通过将用户名和密码带入我的脚本来避免这个错误,但我的公司不希望我这样做。有没有其他方法可以解决这个问题?

谢谢!

编辑 - 据推测我不允许连接的方式,即使它有效但因为密码在代码中,是这样的:

mydb_connected <- dbConnect(

MySQL(),
user="admin-read",
dbname="dbname",
host="myhost",
password="mypass"
)

当然这也适用于连接。

最佳答案

除非您在 RSConnect 上使用 RunAs 选项,否则运行已部署应用程序的用户是 rstudio-connect

然后它没有找到~/.my.cnf 文件。

如果您想保持代码不变,您应该登录托管 RSConnect 的服务器并创建文件 /home/rstudio-connect/.my.cnf 并使其可读用户 rstudio-connect

关于r - 在 R 中的 shinyapps.io 上托管 Shiny 应用程序时连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46967492/

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