Подключение нескольких серверов PostgreSQL R - PullRequest
0 голосов
/ 04 февраля 2020

Мне нужно было разместить 3 фрагмента базы данных на трех разных серверах. Итак, я создал 3 сервера в pgAdmin (s1, s2, s3), а затем поставил каждому серверу по одному шарду. Затем я попытался подключить один из серверов в R; Однако я не мог установить связь. Я всегда получаю сообщение об ошибке:

Ошибка в postgresqlNewConnection (drv, ...): Драйвер RS-DBI: (не удалось подключиться postgres@172.17.0.1: 5432 для имени dbname "postgres": невозможно подключиться к серверу : Истекло время ожидания Работает ли сервер на хосте "172.17.0.1" и принимает ли соединения TCP / IP через порт 5432?

Мой код:

#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

Я что-то не так написал?

1 Ответ

0 голосов
/ 04 февраля 2020

, если используется контейнер, обязательно перенаправьте порт 5432 на 0.0.0.0, т. Е. Контейнер прослушивает порт 5432.

Также вы должны проверить этот параметр, если не выполняете соединение ТОЛЬКО локально>, в файле postgresql .conf:

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

Сохраните файл conf и перезапустите службу. Надеюсь, это поможет!

...