2017-10-27 7 views
1

私はshinyapps.ioでホストしたい私の会社のための光沢のあるアプリケーションを作成しています。このアプリケーションでは、自社のデータベースからデータを取得する必要があります。これは自分のコンピューターで照会できます。しかし、自分のコードにユーザー名とパスワードを直接入れるのではなく、自分のホームディレクトリに保存されている.my.cnfファイルにユーザー名とパスワードを保存しました。私のアプリでは、次のように接続します:shinyapps.ioで光沢のあるアプリケーションをホストするときにデータベースに接続するR

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 appファイルの一番上にあります。残念ながら、アップロードが成功したものの、私は、rsconnect :: deployApp()でアプリを展開した後、アプリが実際に実行されない、と私は私のshinyapps.ioアカウントログに次のエラーが表示されます。

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

私はおそらくこのエラーを回避するために、ユーザ名とパスワードを自分のスクリプトに持ってくることができますが、私の会社は私にこれをしたくありません。私はこれを回避できる他の方法はありますか?

ありがとうございます!

EDIT - 私はおそらくパスワードは、コード内でこのようなものですので、それはしかし、作品にもかかわらず、接続を許可されていないです方法:

mydb_connected <- dbConnect(

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

とofcourseの、これは接続のために働きます。

+0

認証は良い選択肢であるために作る必要があります。ガイダンスについては、[this](https://groups.google.com/forum/#!topic/shinyapps-users/J7i_wcU6_uA)スレッドをお読みください。 –

答えて

0

RunAsオプションをRSConnectに使用する場合を除き、展開されたアプリケーションを実行するユーザーはrstudio-connectです。

次に、~/.my.cnfファイルが見つかりません。そのままあなたのコードを維持したい場合は

は、サーバーのホストRSConnectにログインして、ファイル/home/rstudio-connect/.my.cnfを作成し、それが読めるSSH経由でユーザーrstudio-connect

関連する問題