0

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

作为 :

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

然后,当启动 syncdb 开始工作时,我收到此消息(我已经更改了用户等。在此线程中为用户:问题、密码:密码、数据库:问题,因为它实际上是换句话说):

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': '',
    }
}

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

4

2 回答 2

1

编辑/var/lib/pgsql/data/pg_hba.conf文件并将方法从 更改trustmd5。这样 Postgres 会要求输入密码。

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

于 2012-10-14T14:00:17.910 回答
0

您是否尝试过更改:

host    all             all             127.0.0.1/32            ident

至:

host    all             all             127.0.0.1/32            md5

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

于 2012-10-14T14:05:33.700 回答