【发布时间】:2016-04-21 22:39:19
【问题描述】:
当我尝试从与 postgresql 服务器相同的 ec2 实例本地连接到我的 postgresql 服务器时,出现以下错误:
django.db.utils.OperationalError: FATAL: Ident authentication failed for user "django"
我检查了我的 pg_hba.conf 以确保它允许本地连接:
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
我的 settings.py 有以下设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'famtest',
'USER': 'django',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '5432',
}
}
当我在我的机器上运行项目时(我将“localhost”更改为 ip 地址),这些设置有效,但当我尝试从同一个 ec2 实例运行项目时,这些设置无效。
【问题讨论】:
-
尝试为用户 django 设置密码并使用它。
-
当你使用 'localhost' 时,ipv6 连接很有可能被建立到地址 ::1 所以你需要在你的 pg_hba.conf 中添加一行或者放入 127.0.0.1 而不是localhost 在您的连接设置中,以确保使用 ipv4。
-
@Eelke 我添加了 ipv6 行。我已经在检查 127.0.0.1;还是不行
-
更改 pg_hba.conf 后是否重新启动服务器或重新加载设置(通过
pg_ctl reload)?
标签: python django postgresql amazon-ec2