【发布时间】:2018-04-08 14:43:37
【问题描述】:
我正在为我的公司创建一个闪亮的应用程序,我想将它托管在 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"
)
当然这适用于连接。
【问题讨论】:
-
通过 ssh 进行身份验证是一个不错的选择。您应该阅读this 线程以获得一些指导。