Не могу подключиться к Postgres через psycopg2 Python от имени созданного пользователя и владельца БД

Рейтинг: 0Ответов: 1Опубликовано: 18.08.2023

Возникает ошибка

Traceback (most recent call last):
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\flask\app.py", line 2548, in __call__
    return self.wsgi_app(environ, start_response)
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\flask\app.py", line 2528, in wsgi_app
    response = self.handle_exception(e)
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\flask\app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\flask\app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\flask\app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\flask\app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\connexion\decorators\decorator.py", line 68, in wrapper
    response = function(request)
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\connexion\decorators\uri_parsing.py", line 149, in wrapper
    response = function(request)
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\connexion\decorators\parameter.py", line 120, in wrapper
    return function(**kwargs)
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\people.py", line 45, in read_all
    conn = get_db_connection()
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\people.py", line 16, in get_db_connection
    conn = psycopg2.connect(host='localhost',
  File "D:\Documents\Flask REST API для ПОС\pos_vu_api\pos_vu\lib\site-packages\psycopg2\__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError

При этом, если подключаюсь от имени postgres, то все работает без проблем! Подключаюсь так:

def get_db_connection():
    username=os.environ['DB_USERNAME']
    #username='postgres'
    print(username)
    passw=os.environ['DB_PASSWORD']
    #passw='qwerty_postGRE#1'
    print(passw)
    conn = psycopg2.connect(host='localhost',
                            database='pos',
                            user=username,
                            password=passw,
                            port='5432')
    return conn

Пользователь и БД существуют!

C:\Users\Вячеслав>psql -U Seb -d pos -h 127.0.0.1 -W
Пароль:
psql (12.3)
ПРЕДУПРЕЖДЕНИЕ: Кодовая страница консоли (866) отличается от основной
                страницы Windows (1251).
                8-битовые (русские) символы могут отображаться некорректно.
                Подробнее об этом смотрите документацию psql, раздел
                "Notes for Windows users".
Введите "help", чтобы получить справку.

pos-> \conninfo
Вы подключены к базе данных "pos" как пользователь "Seb" (сервер "127.0.0.1", порт "5432").
pos->

Ответы

▲ 0

Нашел ошибку при установке переменных окружения в Win) Делал так:

(env) D:\Documents\Flask REST API\api>set DB_USERNAME=”Seb”

Двойные кавычки лишние, поэтому postgres-сервер и не видел роль ""Seb""...