【发布时间】:2018-06-27 01:25:12
【问题描述】:
我在 AWS 上创建了一个 PostgreSQL 数据库,我想将其用于 Django 项目。
我修改了 settings.py 使其具有
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': <db name>,
'USER': <user>,
'PASSWORD': <password>,
'HOST': 'projectdevelopment.foobar.us-east-1.rds.amazonaws.com',
'PORT': '5432',
}
}
我认为这似乎很简单。除了当我尝试进行迁移时,我得到了这个错误:
django.db.utils.OperationalError: could not translate host name "projectdevelopment.foobar.us-east-1.rds.amazonaws.com" to address: nodename nor servname provided, or not known
值projectdevelopment.foobar.us-east-1.rds.amazonaws.com 已直接从 RDS 控制台中端点下的值复制。
我是否缺少设置或配置错误?还是两者兼有?
【问题讨论】:
-
您是从 EC2 或 Lambda 等其他 AWS 资源还是从 AWS 外部连接?您是否已将 RDS 实例配置为可从 AWS 外部访问?如果我没记错的话,默认情况下只有通过 VPC 连接才能访问。如果它是一个非常的新实例,它可能需要一两个小时才能传播到您的 DNS 提供商。首先,确保您可以将主机名解析为 IP 地址,例如通过执行
nslookup或类似的 DNS 查询。例如...nslookup my.rdsinstance.us-east-1.rds.amazonaws.com 8.8.8.8查询 Google 的公共 DNS。 -
是的,它可以公开访问。该实例已经存在了将近 24 小时。
-
您可以使用 pgadmin 工具连接到实例吗? pgadmin.org
-
如果您已将实例设为可公开访问,是否可以使用公共 IP 而不是主机名进行连接?该错误表明无法解析主机名。
-
嘿@Batman,我想知道,任何答案有帮助吗?
标签: django postgresql amazon-web-services django-database