Linux(kubuntu)にpostgresql 9.2とpgadmin3の最新バージョンをインストールしましたが、それらを接続すると次のエラーが発生します:
エラーが発生しました: サーバーへの接続エラー: fe_sendauth: パスワードが指定されていません
私に何ができる?
また、Java で Web アプリケーション用に Tomcat を構成しました。実際、postgresql はアプリケーションを試す前から機能していました。
Linux(kubuntu)にpostgresql 9.2とpgadmin3の最新バージョンをインストールしましたが、それらを接続すると次のエラーが発生します:
エラーが発生しました: サーバーへの接続エラー: fe_sendauth: パスワードが指定されていません
私に何ができる?
また、Java で Web アプリケーション用に Tomcat を構成しました。実際、postgresql はアプリケーションを試す前から機能していました。
パスワードが必要かどうかは、 の設定によって異なりますpg_hba.conf
。また、さまざまな接続方法があります。pg_hba.conf のさまざまな設定が適用される場合があります。
接続(「サーバー」)設定の「ホスト」フィールドについて、pgAdmin 3に同梱されているヘルプを引用します。
ホストは、接続するマシンの IP アドレス、または完全修飾ドメイン名です。Unix ベースのシステムでは、ローカル マシンのデフォルトの PostgreSQL Unix ドメイン ソケットを使用するためにアドレス フィールドを空白のままにするか、PostgreSQL ソケットを含む代替パスに設定することができます。パスを入力する場合は、「/」で始める必要があります。ポート番号も指定できます。
Unix ソケット経由で接続する場合、「ローカル」のルールが適用されます。一方、TCP/IP "host" (または "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 はそうではありません。ポスティコを試してみてください。ベータ版ですが、うまく機能します。
この回答が、私のようにパスワードを自由に共有するのではなく、postgres 認証に PKI を使用したい人に役立つことを願っています。
私にとっては、 を実行pg_ctl -D /usr/local/var/postgres start
してサーバーを起動すると、すべて問題なく接続ホスト ポートが表示されます。