Linux(kubuntu)およびpgadmin3の最新バージョンにpostgresql 9.2をインストールしましたが、それらを接続すると次のエラーが発生します。
エラーが発生しました:サーバーへの接続エラー:fe_sendauth:パスワードが指定されていません
私に何ができる?
また、JavaでWebアプリケーション用にTomcatを構成しました。実際、私のアプリケーションを試す前にpostgresqlは機能していました。
パスワードが必要かどうかは、 pg_hba.conf
。接続にはさまざまな方法があります-pg_hba.confの異なる設定が適用される場合があります。
接続(「サーバー」)設定の「ホスト」フィールドについて、pgAdmin 3に付属のヘルプを引用します。
ホストは、接続するマシンのIPアドレス、または完全修飾ドメイン名です。 Unixベースのシステムでは、アドレスフィールドを空白のままにして、ローカルマシンでデフォルトのPostgreSQL Unixドメインソケットを使用するか、PostgreSQLソケットを含む代替パスに設定できます。パスを入力する場合、「/」で始まる必要があります。ポート番号も指定できます。
Unixソケットを介して接続する場合、「ローカル」の規則が適用されます。一方、TCP/IP経由で接続する場合は「ホスト」(または「hostssl」)ルールが適用されます。
Pg_hba.confファイルの先頭に次のような行がある場合:
local all all peer
または:
local all all ident
..その後、システムユーザーが「postgres」で、データベースユーザーも「postgres」の場合、パスワードなしでローカルに接続できます。
私はこれが何年も前の質問であることを知っていますが、今日この同じ問題にぶつかり、trust
を限定的で便利な方法で使用する解決策があります。
多くの開発店と同様に、開発者がQA postgresパスワードを必要とするとき、彼らはただそれを叫び、メッセージを送り、電子メールで送信し、額にそれを書きます。そして、私は「これは本当に悪い。ここでPKIを使用する方法を探します。」 pgAdmin3も使用します。
まず、pg_hba.confに次のような行を追加します。dev
は、ショップの開発者のユーザーを表します。
Host all dev 127.0.0.1/32 trust
データベースサーバーのauthorized_keys
フォルダーに開発者の公開キーをドロップします。次のようなコマンドを使用して、-L
フラグを使用してサーバーにsshを実行します。
ssh -i ~/.ssh/id_rsa -L5432:127.0.0.1:5432 -vvv 101.102.103.104
これにより、postgresポートをlocalhostのように使用できます。もちろん、キー、サーバーを交換し、ローカルで開いているポートにマップしてください(ローカルのpostgresを実行している場合、おそらく5432にバインドされています)。かなり冗長なフラグを使用しているため、sshの問題を簡単にトラブルシューティングできます。
別のターミナルを開き、次のコマンドを発行します。
psql -h 127.0.0.1 -U dev -p 5432
データベースにアクセスする必要がありますが、パスワードの入力を求められることはありません。そうしないと、開発者はセキュリティをほとんど考慮せずにパスワードを放棄し、ハロウィーンのキャンディのようにそれを渡すからです。
現在のところ、PgAdmin3はパスワードを要求するプロンプトを表示しますが、たとえそれが-普通のように-あなたはそれを必要としません。しかし、他のpostgres GUIはそうではありません。 Posticoをお試しください。ベータ版ですが、うまく機能します。
この回答が、パスワードを自由に共有するのではなく、postgresの認証にPKIを使用したい人の助けになることを願っています。
最近、この問題に遭遇しました。
ローカルマシンでPostgreSQLを使用しており、psqlがロギングを必要とせずに動作する場合、pgadmin3のメニューFile - Add Server - Properties tab
を試して、この接続のName
フィールドに入力し、Host
フィールドとPassword
フィールドが空の状態で、ok
をクリックします。
from pgadmin docs
Unixベースのシステムでは、アドレスフィールドを空白のままにして、ローカルマシンでデフォルトのPostgreSQL Unixドメインソケットを使用するか、PostgreSQLソケットを含む代替パスに設定できます。パスを入力する場合は、「/」で始まる必要があります。
pg_hba.conf
に触れることなく、Debianテスト(pgadmin3 1.22、PostgreSQL 11)に取り組みました。