Не удается подключиться к Postgresql - PullRequest
0 голосов
/ 19 июня 2019

Есть похожие вопросы, но у меня ничего не работает.

У меня есть postgres, установленный на сервере под управлением Ubuntu Server 16.04.

В postgresql.conf я установил:

listen_addresses = '*'                                          
port = 5432

Статус postgres дает:

● postgresql.service - загружена СУБД PostgreSQL: загружено (/lib/systemd/system/postgresql.service; включено; предустановка поставщика: включено) Активно: активно (выход) с СР 2019-06-19 09:30:25 UTC 3 мин 24 с назад Процесс: 23683 ExecStart = / bin / true (code = exited, статус = 0 / УСПЕХ) Основной PID: 23683 (код = выход, статус = 0 / УСПЕХ)

19 июня, 09:30:25 ip-172-31-43-128 systemd [1]: запуск PostgreSQL СУБД ... 19 июня 09:30:25 ip-172-31-43-128 systemd [1]: запущено СУБД PostgreSQL.

У меня настроен postgresql в режиме потоковой репликации с 3 подчиненными.

Мой файл pg_hba.conf выглядит так:

 # Database administrative login by Unix domain socket
local   all             postgres                                md5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

host    all             all             172.31.43.128/24        md5
host    replication     all             172.31.32.119/32        trust   # the slave1
host    replication     all             172.31.40.107/32        trust   # the slave2
host    replication     all             172.31.44.8/32          trust   # the slave3

host    postgres        pgpool          172.31.33.203/32        trust   # the client
host    postgres        postgres        172.31.33.203/32        trust   # new
host    all             all             172.31.33.203/32        md5     # the client

Я пытаюсь подключиться к главному экземпляру в python:

import psycopg2
import matplotlib.pyplot as plt
import sys
import time
import pprint

def connect_postgrs():
    try:
        conn = psycopg2.connect("dbname=my_pgpool_db user=postgres password=antonis host=172.31.43.128")  
        print "Connected"
    except psycopg2.Error as e:
        print str(e)

if __name__ == "__main__":
    connect_postgrs()

и я получаю ошибку:

не удалось подключиться к серверу: истекло время ожидания соединения Является ли сервер работает на хосте "172.31.43.128" и принимает соединения TCP / IP на порт 5432?

Команда

: netstat -nlt дает следующий вывод:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 172.31.43.128:5432      0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN

Кто-нибудь знает, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Вам может потребоваться изменить эту запись в вашем файле pg_hba.conf

    host    all             all             172.31.43.128/24        md5

на любой из:

    host    all             all             172.31.43.0/24        md5
    host    all             all             172.31.43.128/32        md5

, а затем перезагрузить конфигурацию:

  sudo service postgresql reload
0 голосов
/ 19 июня 2019

Вы перезапустили Postgres после установки listen_addresses = '*'?

Обычно вы видите

tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN

Вместо

tcp 0 0 172.31.43.128:5432 0.0.0.0:* LISTEN

...