我在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?
我做错什么了吗?
1条答案
按热度按时间yshpjwxd1#
.环境