2017-08-19 30 views
2

私はPostgreSQLのにRを接続しようとしているが、私はエラーを取得R接続のPostgres

library("RPostgreSQL") 
m <- dbDriver("PostgreSQL") 
con <- dbConnect(m) 

エラーは、それが私にはアクセスの問題のように見えますが、ドン」

Error in postgresqlNewConnection(drv, ...) : 
    RS-DBI driver: (could not connect [email protected]:5432 on dbname "user": FATAL: role "user" does not exist 
) 

ですいずれかが助けることができれば解決する方法を知っている。

答えて

3

データベースドライバには、データベースサーバーのアドレス、データベース名、データベースに接続できるロール(およびユーザー)、および関連するパスワードなどの詳細情報が必要です。それらすべてを知っていますか?

簡単なタイプのサービス名でラベル付けされたpg service fileにすべてのパラメータを収集して保存することをお勧めします。たとえば:

[xyz] 
host=<hostname or ip> 
dbname=<database> 
user=<role> 
password=<password> 

次に、あなただけでは、サービス名を使用してRで接続を作成することができます。

library('RPostgreSQL') 
con <- dbConnect(PostgreSQL(), dbname = 'postgres://@/?service=xyz') 

は正しいパス(Linux上~/.pg_service.conf)におけるPGのサービスファイルを保存します。使用するサービス/データベースごとに別々のブロックを含めることができるので、このファイルは特定のプロジェクトのディレクトリに存在してはいけません。

1

あなたの通話で資格情報を追加する必要がありますかdbConnect。ここに例があります

mydb <- dbConnect(m, user="rprimer", password="PASSword",     
        dbname="rprimer", host="192.168.1.151") 

すべての必要な情報を指定し、それが役立つかどうかを試してみてください。すべての引数を設定に合わせる必要があります。

+0

コードを共有または公開する場合は、このソリューションを使用しないでください。許可されていないユーザーにパスワードを渡すことによってデータベースにアクセスするように求めます。 – Ian

+0

@Ianと完全に同意します。その情報を他の人と共有すると、セキュリティ上のリスクになります – ekstroem

関連する問題