连接多台服务器 PostgreSQL R

Posted

技术标签:

【中文标题】连接多台服务器 PostgreSQL R【英文标题】:Connecting multiple server PostgreSQL R 【发布时间】:2020-02-04 00:02:51 【问题描述】:

我需要将一个数据库的 3 个分片放在三个不同的服务器上。所以我在 pgAdmin(s1,s2,s3) 中创建了 3 个服务器,然后我将每个服务器放置一个分片。然后,我尝试连接 R 中的一台服务器;但是,我无法建立联系。我总是得到一个错误:

postgresqlNewConnection(drv, ...) 中的错误:RS-DBI 驱动程序:(无法连接数据库名称“postgres”上的 postgres@172.17.0.1:5432:无法连接到服务器:操作超时服务器是否正在运行主机 "172.17.0.1" 并接受端口 5432 上的 TCP/IP 连接?

我的代码是:

#install.packages("RPostgreSQL")
require("RPostgreSQL")
library(DBI)

# create a connection
# save the password that we can "hide" it as best as we can by collapsing it
pw <- 
  "postgres"


# loads the PostgreSQL driver
drv <- dbDriver("PostgreSQL")
# creates a connection to the postgres database
con <- dbConnect(
  drv,
  dbname = "postgres",
  host = "172.17.0.1",
  port = 5432,
  user = "postgres",
  password = pw
)
rm(pw) # removes the password

pgAdmin snap

我写错了吗?

【问题讨论】:

我不确定这是否会有所不同,但我通常将我的论点放在单引号中并尝试将 postgres 的端口更改为 5439。另外,我不确定你为什么放您在 中的密码。这可能会改变一些事情。您可以尝试将其放入您的 .Renviron 【参考方案1】:

如果这是使用容器,请确保在 0.0.0.0 上转发端口 5432,即容器正在侦听端口 5432。

此外,如果您不是仅在本地进行连接,则必须检查此设置>,在 postgresql.conf 文件中:

# - Connection Settings -
#listen_addresses = 'localhost'  >>>> This should be = '*'  instead of localhost

保存配置文件并重启服务。希望这会有所帮助!

【讨论】:

非常感谢 :) 我已经更改了 listen_addresses,但 0.0.0.0 完美运行!希望你有一个美好的一天:) @user3683477 当然,nps,祝你有美好的一天!

以上是关于连接多台服务器 PostgreSQL R的主要内容,如果未能解决你的问题,请参考以下文章

连接mysql慢或者多台服务器ping不通mysql

noVNC连接多台远程主机

vscode 通过ssh远程连接多台服务器?

PostgreSQL 连接数的查看与设置

Linux服务器上的PostgreSQL远程连接不上

多台电脑使用H2文件模式可以吗