Solusi Cepat
Masalahnya adalah ia mencoba melakukan peer
otentikasi lokal berdasarkan nama pengguna Anda saat ini. Jika Anda ingin menggunakan kata sandi, Anda harus menentukan nama host dengan -h
.
pg_dump dbname -U username -h localhost -F c
Penjelasan
Ini karena hal berikut di pg_hba.conf
local all all peer
host all all 127.0.0.1/32 md5
Ini memberitahu Postgres untuk menggunakan peer
otentikasi untuk pengguna lokal yang membutuhkan nama pengguna postgres agar sesuai dengan nama pengguna sistem Anda saat ini. Baris kedua mengacu pada koneksi yang menggunakan nama host dan akan memungkinkan Anda untuk mengotentikasi dengan kata sandi melalui md5
metode ini.
Konfigurasi Pengembangan Pilihan Saya
CATATAN : Ini seharusnya hanya digunakan pada workstation pengguna tunggal. Hal ini dapat menyebabkan kerentanan keamanan utama pada mesin produksi atau multi-pengguna.
Saat mengembangkan terhadap contoh postgres lokal, saya ingin mengubah metode otentikasi lokal saya menjadi trust
. Ini akan memungkinkan koneksi ke postgres melalui soket unix lokal sebagai pengguna mana pun tanpa kata sandi. Ini dapat dilakukan hanya dengan mengubah di peer
atas trust
dan memuat ulang postgres.
# Don't require a password for local connections
local all all trust