1. ホーム
  2. django

[解決済み] Django から PostgreSQL への接続。"ピア認証に失敗しました"

2022-07-26 10:44:27

質問

OperationalError at /admin/

FATAL:  Peer authentication failed for user "myuser"

これは、Djangoの管理サイトにアクセスしようとしたときに表示されるエラーです。私は MySQL データベースを問題なく使用していました。私はPostgreSQLの初心者ですが、最終的にこのプロジェクトに使用する予定のホストにはMySQLがないため、切り替えることにしました。

したがって、私はPostgreSQLをインストールするプロセスを通過できると考えました。 syncdb を実行し、すべて設定することができると考えました。

問題は、私のアプリをデータベースに接続することができないようです。コマンド ラインまたはダウンロードしたデスクトップ アプリから PostgreSQL にログインすることはできます。ただ、スクリプトではできません。

また、私は manage.py shell を使ってうまくDBにアクセスできます。

何かご意見はありますか?

どのように解決するのですか?

例外を調べてみると、接続設定に関係していることがわかりました。もう一度 settings.py に戻って、私はホストのセットアップを持っていないことを見ました。追加 localhost を追加し、出来上がりです。

私のsettings.pyにはMySQLデータベース用のHOSTがありませんでしたが、PostgreSQLが動作するようにHOSTを追加する必要がありました。

私の場合 localhostHOST の設定に変更したらうまくいきました。

以下は DATABASES セクションです。 settings.py .

DATABASES = { 
    'default': { 
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': '<MYDATABASE>', 
        'USER': '<MYUSER>', 
        'PASSWORD': '<MYPASSWORD>', 
        'HOST': 'localhost', # the missing piece of the puzzle 
        'PORT': '', # optional, I don't need this since I'm using the standard port
    } 
}