我在ubuntu虚拟机上安装了一个django应用程序,但无法远程访问postgres数据库

rqdpfwrv  于 2022-12-22  发布在  Go
关注(0)|答案(1)|浏览(181)

我在django中部署了一个应用程序在VM中的GCP上(ubuntu22.0401LTS)
应用程序工作正常,数据库为postgresql。
但是我不能远程访问数据库,我总是得到超时错误.
我的设置. 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?

我做错什么了吗?

yshpjwxd

yshpjwxd1#

.环境
# 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

相关问题