0

別のディストリビューションと同じようにすべてを構成しました(私はarchユーザーであり、デスクトップマシンにopenSUSEをインストールしました)。

として :

  • Djangoとそのすべての要件(psycopg)
  • Postgresql
  • djangoサーバーのユーザーを作成しました
  • データベースを作成しました
  • 新しいユーザーにデータベースのすべての権限を付与しました

次に、syncdbを起動して作業を開始すると、次のメッセージが表示されます(user:question、password:password、database:questionのユーザーなどをこのスレッドで変更しました):

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

私のdjangoconfファイルには以下が含まれています:

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、メソッドを からtrustに変更しますmd5。このようにして、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経由で認証します。おそらく、「md5」またはその他のパスワードベースの認証オプションのいずれかが必要です。

于 2012-10-14T14:05:33.700 に答える