Django подключается к удаленному Postgres: '127.0.0.1 работает, а 'localhost' не работает

Я настроил локальный проброс портов на удаленный сервер, на котором работает база данных Postgres.

ssh -v -L 127.0.0.1:5433:localhost:5432 user@server-ip

Мои настройки django:

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '<db_name>',
        'USER': '<db_user>',
        'PASSWORD': 'django',
        'HOST': 'localhost',
        'PORT': '5433',
    }
}

Когда я запускаю сервер, я получаю ошибку, как показано ниже:

При проверке произошла ошибка: OperationalError('connection failed: :1), port 5433 failed: could not receive data from server: Connection refused\ncould not send startup packet: Connection refused')

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

psql <db_name> -U <db_user> -p 5433 -h localhost

и он работает!!! Поэтому я решил, что это проблема клиента.

Сервер django смог подключиться к бд только тогда, когда я изменил 'HOST': 'localhost' на 'HOST': '127.0.0.1'

Мой /etc/hosts:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost

127.0.0.1   postgres
127.0.0.1   mysql
127.0.0.1   redis

pg_hba.conf:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
# Added by saritasa
127.0.0.1   postgres
127.0.0.1   mysql
127.0.0.1   redis
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
127.0.0.1 mysql
127.0.0.1 redis

Я не могу подключиться с локального сервера django, если HOST установлен на localhost, но он работает, если его заменить на 127.0.0.1

Можете ли вы, ребята, дать мне некоторые соображения? Спасибо

Вернуться на верх