我只想尝试将R连接到PostgreSQL,但是我收到错误
library("RPostgreSQL")
m <- dbDriver("PostgreSQL")
con <- dbConnect(m)
错误是
Error in postgresqlNewConnection(drv, ...) :
RS-DBI driver: (could not connect user@localhost:5432 on dbname "user": FATAL: role "user" does not exist
)
看起来对我来说是访问问题,但如果有人可以提供帮助,我们就不知道如何解决。
答案 0 :(得分: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')
将pg服务文件保存在正确的路径中(Linux上为~/.pg_service.conf
)。您可以为您使用的每个服务/数据库包含单独的块,因此该文件不应位于特定项目的目录中。
答案 1 :(得分:1)
您需要在通话dbConnect
中添加凭据。这是一个例子
mydb <- dbConnect(m, user="rprimer", password="PASSword",
dbname="rprimer", host="192.168.1.151")
尝试指定所有必要信息,看看是否有帮助。您需要调整所有参数以适应您的设置。