gpt4 book ai didi

r - 使用 RStudio Connection Pane 连接 PostgreSQL 数据库

转载 作者:行者123 更新时间:2023-11-29 12:17:06 28 4
gpt4 key购买 nike

我们有一个 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!"))

我现在想开始使用“连接” Pane ,但尽管尝试了多种设置方法,但我始终无法正常工作。这是我在 RStudio documentation 中描述的过程。 :

1.点击新建连接
2.选择PostgreSQL Unicode(x64)
3.在参数窗口中,我粘贴以下代码:

    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 的驱动程序已安装。

谁能发现编码错误或我做错了吗?

最佳答案

如果您删除双引号和空格,并将逗号替换为分号,它应该可以工作。

所以你的参数窗口应该是这样的:

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

请注意,您不需要指定驱动程序,因为您在上一个窗口中选择 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

在这两种情况下,连接都会出现在您的“连接” Pane 中。

也许将来您不需要为此使用 odbc: https://community.rstudio.com/t/postgresql-in-connection-tab/1817/4

关于r - 使用 RStudio Connection Pane 连接 PostgreSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47431947/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com