2

ファイル権限を 0600 に設定して、.pgpass ファイルに必要なエントリを作成しました。

パスワードを入力せずに、db form shell コマンド ラインに接続できます。

しかし、postgres を内部的にクエリするシェル スクリプトを実行すると、パスワードの入力を求められます。

何が間違っているのかわかりません。

サンプル シェル スクリプトを次に示します。

#!/bin/bash
source $1
psql -h $DBHOST -d $DBNAME -U $DBUSER << EOF
        select * from students limit 10;
EOF

DBHOST、DBNAME、および DBUSER のすべての値が正常に機能しています。

4

1 に答える 1

2

どうでも。

私は愚かな間違いを犯しました。Windowsで構成ファイルを編集しました。そのため、すべての行の最後に crlf が追加されていました。そのため、表示されていなくても、postgres への接続時に使用されていました。

したがって、コマンドラインではこれが機能しました。

psql -h 192.168.1.45 -d somedbname -U $somedbuse

しかし、これはしませんでした。(構成ファイルのソース後)

psql -h $DBHOST -d $DBNAME -U $DBUSER
于 2013-05-16T02:55:02.480 に答える