Django无法连接到Opensuse上的Postgresql

时间:2012-10-14 13:54:05

标签: database django linux postgresql opensuse

我已经配置了所有内容,就像我在另一个发行版中一样(我是一个拱形用户,我在台式机上安装了opensuse)。

作为:

  • Django及其所有要求(psycopg)
  • PostgreSQL的
  • 为我的django服务器创建了一个用户
  • 创建数据库
  • 为我的新用户授予数据库的所有权力

然后,当启动syncdb开始工作时,我得到这条消息(我在这个帖子中为用户更改了用户等..问题,密码:密码,数据库:问题,因为它实际上是用其他词语):< / p>

FATAL:  Ident authentication failed for user "question"

潜伏之后,我有了改变我的pg_hba.conf文件的想法(位于:/var/lib/pgsql/data/pg_hba.conf)

这就是我所拥有的:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

我的django conf文件包含:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'question',
        'USER': 'question',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '',
    }
}

我不明白我错过了什么,有什么想法吗?

2 个答案:

答案 0 :(得分:1)

修改/var/lib/pgsql/data/pg_hba.conf文件,将方法从trust更改为md5。这样Postgres会要求输入密码。

还记得重新加载配置文件。

答案 1 :(得分:0)

您是否尝试过更改:

host    all             all             127.0.0.1/32            ident

为:

host    all             all             127.0.0.1/32            md5

您似乎是通过TCP连接(因此pg_hba.confg中第一行的“trust”不适用)并通过ident进行身份验证,这需要pg_ident.conf中的条目。您可能需要“md5”或其他基于密码的身份验证选项之一。