web-dev-qa-db-ja.com

PostgreSQLサーバー(9.3)の認証失敗

現在、pgadmin(Ubuntu 14.04で実行)からPostgresqlサーバー(9.3)に接続できません。 pg_lsclustersによるサーバーはポート5433にあります。

    Ver Cluster Port Status Owner    Data directory               Log file
    9.1 main    5432 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
    9.3 main    5433 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

Pgadminで9.1サーバーに接続できますが、9.3サーバーにアクセスしようとすると、パスワードを認証できないというエラーが表示されます。

    An error has occurred:

    Error connecting to the server: FATAL:  Passwort-Authentifizierung für Benutzer „postgres“ fehlgeschlagen
    FATAL:  Passwort-Authentifizierung für Benutzer „postgres“ fehlgeschlagen

9.1サーバーのpg_hba.confには次の行があります。

    # Database administrative login by Unix domain socket
    local   all             postgres                                peer

    # TYPE  DATABASE        USER            ADDRESS                 METHOD

    # "local" is for Unix domain socket connections only
    local   all             all                                     peer
    # IPv4 local connections:
    Host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    Host    all             all             ::1/128                 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                peer
    #Host    replication     postgres        127.0.0.1/32            md5
    #Host    replication     postgres        ::1/128                 md5

9.3サーバーのpg_hba.confには以下が含まれます。

    # Database administrative login by Unix domain socket
    local   all             postgres                                md5

    # TYPE  DATABASE        USER            ADDRESS                 METHOD

    # "local" is for Unix domain socket connections only
    local   all             all                                     md5
    # IPv4 local connections:
    Host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    Host    all             all             ::1/128                 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                peer
    #Host    replication     postgres        127.0.0.1/32            md5
    #Host    replication     postgres        ::1/128                 md5

違いは、最初の2つのアクティブな行の「ピア」または「md5」です。次にピアリングに切り替えてみます。私はソリューションへの正しい道を進んでいますか? (編集:いいえ、これは役に立ちませんでした)。

パスワード

サーバーのデフォルトのパスワードを変更してみました:

    $ Sudo -u postgres psql
    psql (9.3.4, Server 9.1.13)

    postgres=#  \password

これがうまくいかなかった理由がわかりません。コマンドは9.1サーバーにのみ影響し、9.3サーバーには影響しません(古いサーバーを強制終了して9.3サーバーを適切に設定できれば幸いです)。

関連する質問:

- https://stackoverflow.com/questions/18664074/getting-error-peer-authentication-failed-for-user-postgres-when-trying-to-ge

- https://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres?rq=1

1
tobias47n9e

問題の一時的な解決策を見つけました。最初の2つのアクティブな行で、9.3サーバーのpg_hba.confを編集してtrustと記述しました。そして再起動後(Sudo service postgresql restart)pgadminを使用してサーバーに再び接続できます。欠点は、サーバーがパスワードで保護されていない可能性があることです(問題が発生した場合は別の質問を開きます)。

    # Database administrative login by Unix domain socket
    local   all             postgres                                trust

    # 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            md5
    # IPv6 local connections:
    Host    all             all             ::1/128                 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                peer
    #Host    replication     postgres        127.0.0.1/32            md5
    #Host    replication     postgres        ::1/128                 md5
2
tobias47n9e