2017-11-22 40 views
2

私たちは仕事中にPostgreSQLデータベースを持っています。接続するたびに、次のコードを手動で実行して接続を構築していますが、うまく動作します。RStudio接続ペインを使用してPostgreSQLデータベースに接続する

library(RPostgreSQL) 
    con <- dbConnect(dbDriver("PostgreSQL"), 
        dbname = "company_xy", 
        host  = "db.company_xy.de", 
        port  = 5432, 
        user  = rstudioapi::askForPassword("User"), 
        password = rstudioapi::askForPassword("Password!")) 

これで接続ペインの使用を開始したいと思いますが、複数の設定方法を試しても動作しません。

:新しい接続
2.Select PostgreSQLのユニコード(x64)のIは、次のコードを貼り付けパラメータウィンドウ3.In

1.Click:これはRStudio documentationに記載したように、私は、その後のプロセスであります

Driver = "PostgreSQL", 
    Server = "db.company_xy.de", 
    Database = "company_xy", 
    UID = "my_username", 
    PWD = "my_password", 
    Port = 5432 

私はいつも次のエラーメッセージが表示されます。私は括弧を除去し、PAの間のセパレータの異なる種類を使用してみました

Failure. :2.99: unexpected symbol 1: library(DBI) con <- dbConnect(odbc::odbc(), .connection_string = "Driver={PostgreSQL Unicode(x64)};Driver = "PostgreSQL

を放浪者({}、;)しかし終わりにはならない。 odbcとDBI用のドライバがインストールされています。

誰でもコーディングミスを見つけたり、間違っていましたか?

答えて

1

二重引用符とスペースを削除し、セミコロンでカンマを置き換えることが条件です。

だからあなたのパラメータのウィンドウは次のようになります。あなたが前のウィンドウでPostgreSQL Unicode(x64)を選択したとき、あなたはすでにそれを選んだので、ドライバを指定する必要はありません

Server=db.company_xy.de; 
Database=company_xy; 
UID=my_username; 
PWD=my_password; 
Port=5432; 

注意。

実際には、このパラメータウィンドウのポイントは、その下に表示される接続文字列を作成することだけであるようです。

library(DBI) 
con <- dbConnect(
    odbc::odbc(), 
    driver = "PostgreSQL Unicode(x64)", 
    Server = "db.company_xy.de", 
    Database = "company_xy", 
    UID = rstudioapi::askForPassword("User"), 
    PWD = rstudioapi::askForPassword("Password!"), 
    Port = 5432 
) 

や、あなたの接続文字列のような場合::だからIMOそれはあなたのRスクリプト(またはコンソール)からの接続を設定するために、より直接的だ

library(DBI) 
con <- dbConnect(
    odbc::odbc(), 
    .connection_string = "Driver={PostgreSQL Unicode(x64)};Server=db.company_xy.de;Database=company_xy;UID=my_username;PWD=my_password;Port=5432;" 
) 

が、この後者の方法は、あなたが使用することはできません。 rstudioapi::askForPassword

どちらの場合も、接続は接続ペインに表示されます。

たぶん将来的に、あなたはそのためodbcを使用する必要はありません。 https://community.rstudio.com/t/postgresql-in-connection-tab/1817/4

+0

私は、あなたが提供する三つの方法を試してみましたが、それが仕事をdidnt't。接続ペインとコンソールの両方からコードを実行すると、次のエラーメッセージが表示されます。**エラー:nanodbc/nanodbc.cpp:950:08001:FATAL:ユーザー "my_username" **のパスワード認証に失敗しました。 rstudioapi ::なしで文字列としてパスワードを書き込もうとしましたが、同じエラーメッセージが表示されます。私は私のポストに記載されている最初の方法を使用しているので、パスワードが正しいことを知っています。 (ありがとう、これまでのところ:) –

+0

これは別の問題です。パスワードにASCII以外の文字が含まれていますか? '[] {}()、;?* =!@'の中の文字か?私はスレッドを見つけたので:http://www.postgresql-archive.org/Problem-with-special-characters-in-password-when-using-SQLDriverConnect-td5755239.html – Scarabee

+1

はい私は "+"を持っていますわたしのパスワード。あなたが提供したリンクの指示に従って、解決策を見つけました。中括弧{my_password}でパスワードを囲むことはやりました。それは今働く。やっつける! **どうもありがとう :)** –

関連する問題