使用 RStudio Connection Pane 连接 PostgreSQL 数据库
Using RStudio Connection Pane to connect with a PostgreSQL database
我们有一个 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!"))
我现在想开始使用“连接”窗格,但尽管尝试了多种设置方法,但我始终无法正常工作。这是我在 RStudio documentation:
中描述的过程
1.Click 新连接
2.Select PostgreSQL Unicode(x64)
3.In 参数 window 我粘贴以下代码:
Driver = "PostgreSQL",
Server = "db.company_xy.de",
Database = "company_xy",
UID = "my_username",
PWD = "my_password",
Port = 5432
我总是收到以下错误消息:
Failure. :2.99: unexpected symbol 1: library(DBI) con <-
dbConnect(odbc::odbc(), .connection_string = "Driver={PostgreSQL
Unicode(x64)};Driver = "PostgreSQL
我尝试删除括号并在参数 ({}, ;) 之间使用不同类型的分隔符,但没有结束。 odbc 和 DBI 的驱动程序已安装。
任何人都可以发现编码错误还是我做错了吗?
如果您删除双引号和空格,并将逗号替换为分号,它应该可以工作。
因此您的参数 window 应该如下所示:
Server=db.company_xy.de;
Database=company_xy;
UID=my_username;
PWD=my_password;
Port=5432;
请注意,您不需要指定驱动程序,因为您在之前 window 中选择 PostgreSQL Unicode(x64)
时已经选择了它。
实际上,这个参数 windows 的目的似乎只是为了构建您可以在其下方看到的连接字符串。所以 IMO 从你的 R 脚本(或控制台)设置连接更直接:
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
)
或者,如果您喜欢连接字符串:
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
我们有一个 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!"))
我现在想开始使用“连接”窗格,但尽管尝试了多种设置方法,但我始终无法正常工作。这是我在 RStudio documentation:
中描述的过程1.Click 新连接
2.Select PostgreSQL Unicode(x64)
3.In 参数 window 我粘贴以下代码:
Driver = "PostgreSQL",
Server = "db.company_xy.de",
Database = "company_xy",
UID = "my_username",
PWD = "my_password",
Port = 5432
我总是收到以下错误消息:
Failure. :2.99: unexpected symbol 1: library(DBI) con <- dbConnect(odbc::odbc(), .connection_string = "Driver={PostgreSQL Unicode(x64)};Driver = "PostgreSQL
我尝试删除括号并在参数 ({}, ;) 之间使用不同类型的分隔符,但没有结束。 odbc 和 DBI 的驱动程序已安装。
任何人都可以发现编码错误还是我做错了吗?
如果您删除双引号和空格,并将逗号替换为分号,它应该可以工作。
因此您的参数 window 应该如下所示:
Server=db.company_xy.de;
Database=company_xy;
UID=my_username;
PWD=my_password;
Port=5432;
请注意,您不需要指定驱动程序,因为您在之前 window 中选择 PostgreSQL Unicode(x64)
时已经选择了它。
实际上,这个参数 windows 的目的似乎只是为了构建您可以在其下方看到的连接字符串。所以 IMO 从你的 R 脚本(或控制台)设置连接更直接:
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
)
或者,如果您喜欢连接字符串:
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