Не получается подключиться к postgreSQL из скрипта на Python, что с этим делать?

Пишу бота на Python с библиотекой aiogram.
Пытаюсь сконнектить бота и postgreSQL БД на одном и том же сервере UBUNTU

Прописал настройки для тестового подключения:
DB_HOSTNAME = localhost
DB_PORT = 5432
DB_DATABASE = postgres
DB_USERNAME = postgres
DB_PASSWORD = *************

Создал класс Database, который отвечает за работу с БД.
class Database:
    def __init__(self):
        self.host = config.db_hostname.get_secret_value()
        self.port = config.db_port
        self.database = config.db_database.get_secret_value()
        self.username = config.db_username.get_secret_value()
        self.password = config.db_password.get_secret_value()
        self.connection = None
        self.cursor = None
        self.connect()

    def connect(self):
        try:
            self.connection = psycopg2.connect(
                host=self.host,
                database=self.database,
                user=self.username,
                password=self.password,
                port=self.port
            )
            self.cursor = self.connection.cursor()
            print("Database connected")
        except (Exception, psycopg2.Error) as error:
            print("Error while connecting to PostgreSQL", error)


При инициализации класса специально добавил self.connect() чтобы подключиться к БД, из основного кода не получается, как и отсюда тоже. Выдает ошибку:
Error while connecting to PostgreSQL connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
connection to server at "localhost" (::1), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?

сервис postgreSQL работает, состояние Active
файрволл отключен
подключения к БД разрешены ото всюду

При этом порт указан верно, в настройках БД стоит localhost. Пробовал менять HOST на 127.0.0.1, но не помогает. Мучаюсь уже несколько часов и никак.
Из терминала подключиться удается, в psql тоже вхожу и работаю с БД. Проблема явно где-то в коде...
Натолкните на мысль, куда смотреть, что искать, почему так может быть?
  • Вопрос задан
  • 249 просмотров
Решения вопроса 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Из терминала подключиться удается, в psql тоже вхожу и работаю с БД.

Прямо вот так работает? psql -h 127.0.0.1. А то по умолчанию-то psql ходит через unix-сокет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы