簡體   English   中英

在 R 中的 Shinyapps.io 上托管閃亮應用程序時連接到數據庫

[英]Connecting to database when hosting shiny app on shinyapps.io in R

我正在為我的公司創建一個閃亮的應用程序,我想在 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 閃亮應用程序文件的頂部。 不幸的是,在我使用 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選項, RSConnect運行已部署應用程序的用戶是rstudio-connect

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

如果您想保持代碼不變,您應該登錄托管 RSConnect 的服務器並創建文件/home/rstudio-connect/.my.cnf並使其對用戶rstudio-connect可讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM