完了には、URI(ドキュメントリンク)を使用することもできます
DBSを一覧表示
psql "postgresql://username:password@localhost/postgres" -l
また、このコマンドを名前のみを持つように作成しました(より良い方法を知っている場合は教えてください):
psql "postgresql://username:password@localhost/postgres" -l | awk -F '|' '{print $1}'| sed -e '/^\s*$/ d' -e '1,3d'|sed '$d'|awk '{print $1}'
UNIXソケットを使用して接続することもできます。
# ss -x -a |grep postgres|awk '{print $5}'
/var/run/postgresql/.s.PGSQL.5432
ソケットの親ディレクトリが使用されることに注意してください。
# sudo -u postgres psql -d "postgresql:///postgres?host=/var/run/postgresql/" -l
あなたがあなたの中にこの行を持っている場合にのみこれを行うことができますpg_hba.conf
:
local all postgres ident
「ident」は、authentにunixユーザーを使用します
dbをダンプします
ここで別のポート番号を追加しました
pg_dump -Fc "postgresql://username:password@localhost:9001/${db}" > "backup_${db}.pgdump"
dumpallでは、スーパーユーザーまたはロール(with CREATE ROLE ... SUPERUSER
)が必要です。また、すべてのDBにアクセスできる必要があります。デフォルトでpostgres
はできます。
しかし、私の場合、彼のパスワードが開発者によって削除されたため、postgresでpg_dumpallを使用できませんでした。
だから私は使用しました:
sudo -u postgres pg_dumpall -d "postgresql:///?host=/var/run/postgresql/" > all.dump
テスト済みバージョン
# cat /opt/postgresql/PG_VERSION
9.6
hth