У меня есть приложение django на виртуальной машине ubuntu, и я не могу получить удаленный доступ к базе данных postgres.
Я развернул приложение на django на GCP в виртуальной машине (ubuntu 22.04 01 LTS)
Приложение работает нормально, база данных - postgresql.
Но я не могу получить удаленный доступ к базе данных, я всегда получаю ошибку таймаута.
Мой settings.py
....
DATABASES = {
'default': {
'ENGINE': os.environ.get('DATABASE_ENGINE'),
'NAME': os.environ.get('DATABASE_NAME'),
'USER': os.environ.get('DATABASE_USER'),
'PASSWORD': os.environ.get('DATABASE_PASSWORD'),
'HOST': os.environ.get('DATABASE_HOST'),
'PORT': os.environ.get('DATABASE_PORT'),
}
}
...
Мой .env файл :
# Postgres
DATABASE_ENGINE = 'django.db.backends.postgresql'
DATABASE_NAME = "basededados"
DATABASE_USER = "user"
DATABASE_PASSWORD = "senha"
DATABASE_HOST = "127.0.0.1"
DATABASE_PORT = "5432"
Я создал базу данных следующим образом:
sudo -u postgres psql
CREATE ROLE user WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'senha';
CREATE DATABASE basededados WITH OWNER user;
GRANT ALL PRIVILEGES ON DATABASE basededados TO user;
Я уже настроил файл postgres.conf:
listen_addresses = '*'
И файл pg_hba.conf**:**
# IPv4 local connections:
host all all 0.0.0.0/0 md5
Я уже разрешил порт 5432
через брандмауэр, выполнив:
sudo ufw allow 5432/tcp
Я пытаюсь получить доступ к БД следующим образом:
psql -h {Virtual machine IP} -d basededados -U user
ошибка:
psql: error: connection to server at {Virtual machine IP}, port 5432 failed: Connection timed out
Is the server running on that host and accepting TCP/IP connections?
Я делаю что-то не так?
.env
# Postgres
DATABASE_ENGINE=django.db.backends.postgresql
DATABASE_NAME=basededados
DATABASE_USER=user
DATABASE_PASSWORD=senha
DATABASE_HOST=127.0.0.1
DATABASE_PORT=5432