私は postgres を使用するのが初めてで、root アクセス権のない Web サーバーで実行されているデータベースにアクセスしようとしています。
trust
私の問題は、すべてのユーザーとデータベースに対して認証が設定されているにもかかわらず、データベースとやり取りしたりデータベースにアクセスしたりするときに、常にパスワードを求められることです。
ホーム ディレクトリにソースから postgres 9.2 をインストールした後、 を使用してデータベース クラスターを正常に開始しましたinitdb -U thisuser -D tmpdb -A trust
。ここthisuser
で、 は Web サーバー上のユーザー名です。この間、ssh経由でサーバーにログインしています。
また、サーバーの起動は、 を使用しても問題ありませんでしたpg_ctl -D tmpdb start
。
ただし、データベースを使用してアクセスしようとすると、psql -U postgres
常にパスワードが要求されます。
すべてのユーザーとデータベースからの接続を許可するため、これは発生しないはずです。構成ファイルは、データベース クラスタ フォルダ内にあります:tmpdb/pg_hba.conf
およびtmpdb/postgresql.conf
.
サーバーはに設定されlisten_addresses = 'localhost'
、認証設定は次のとおりです。
# 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 trust
# IPv6 local connections:
host all all ::1/128 trust
設定をいじってみましたが、一度設定すると実際にデータベースにアクセスする方法がわかりません。どうすればアクセスできますか?
前もって感謝します!
解決済みの編集:
以前に何が起こっていたのか正確にはわかりませんが、次のように環境変数を設定する必要がありました。
PGPORT = 5433
export PGPORT
ここで、5433 はpostgresql.conf
ファイルで指定されたポートです。これで問題なく動作します... (@celenius に感謝)。