2014-07-25 87 views

回答

2

我对我的回答有些“迟到”,但请记住,如果您正在部署到shiny.io,那么“localhost”指向shiny.io,并且在那里没有mysql :-)所以你应该打开你的MySQL服务器并在“主机”变量中使用你的公共IP地址。不是我提出这个建议,从安全角度来看,向公众开放你的MySQL服务器是不明智的。如果您遵循这种方式,至少应该过滤连接以仅允许shiny.io的IP地址。

另一种解决方案 - 在我看来,更合理的做法可能是使用一个已经公开的服务器,为您提供一个持久层,例如mongohq.com(现在的compose.io)。他们使用MongoDB(不是MySQL),但它可以满足你的需求(你将得到一个免费的512MB RAM测试服务器)。您可能想要学习this working example that uses shiny.io and mongo以启动您的项目。

0

用法与普通R脚本基本相同。 你可以在你server.R文件的顶部

library(RMySQL) 
con = dbConnect(MySQL(), user='myusername', password='mysillypassword', db='dataaa', host='localhost') 

query = "SELECT 1" 
result = dbGetQuery(con, query) 

现在的结果将是可用于闪亮的应用程序的其余部分把这个。

您还可以在反应函数内部构建查询,并动态查询数据库。

+0

而不是将mysql用户名和密码存储在脚本中,建议将它们存储在选项文件中。例如,您可以将密码存储在服务器上闪亮用户的mysql配置文件中:/home/shiny/.my.cnf。另请参阅:[使用选项文件的MySQL](https://dev.mysql.com/doc/refman/5.7/en/option-files.html)和[MariaDB配置my.cnf](https:// mariadb。 COM/KB/EN /库/配置-MariaDB的与 - mycnf /)。 –