Pertama, ambil salinan cadangan dari pg_hba.conf yang diberikan
sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf
Dengan begitu, Anda memiliki versi yang lebih lama jika Anda gagal. Fitur arsip tar yang bagus adalah yang menjaga izin dan direktori. Jadi ketika pg_hba.conf rusak melebihi pengakuan. Kamu bisa:
cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar
Ini akan mengembalikan pg_hba.conf cadangan dari arsip yang Anda buat sebelumnya.
Adapun penyisipan baris yang sebenarnya:
sudo su -c 'echo "host all all 10.0.2.12 255.255.255.255 trust" >> /var/lib/pgsql/data/pg_hba.conf'
Harus melakukannya. Perhatikan bahwa ini hanya menambahkan baris ke pg_hba.conf. Jika Anda perlu mengubahnya, Anda harus menggunakan editor yang sebenarnya. Seperti vi. Kurva pembelajarannya bisa sedikit curam, tetapi setelah Anda mempelajari setidaknya dasar-dasarnya Anda harus cukup aman di sebagian besar setiap lingkungan unix yang Anda temui.
Sekarang saya kembali ke jalur selanjutnya Anda harus mencoba me-restart database postgresql Anda. Pada mesin Centos ini saya percaya dilakukan oleh:
sudo service postgresql restart
atau Anda bisa memuat ulang konfigurasi tanpa memulai ulang:
su - postgres
pg_ctl reload
Sekarang Anda harus dapat mengakses database postrgresql Centos-Machines Anda dari 10.0.2.12
Sudo dalam perintah terakhir tidak akan berfungsi karena operasi privilisasi dilakukan oleh pengalihan, yang ditangani oleh shell, bukan oleh program yang Anda jalankan dengan sudo (gema, dalam kasus ini).
bortzmeyer
Poin bagus! Ini harus ditulis sebagai sudo "echo 'host semua 10.0.2.12 255.255.255.255 trust' >>
/var/lib/pgsql/data/pg_hba.conf
Cara yang ideal adalah meletakkannya di bawah kontrol versi di lokasi admin dan menyebarkannya setelah mengubahnya melalui SSH dll
vfclists
1
Lokasi default file pg_hba.conf sedikit berbeda di 9.4: /var/lib/pgsql/9.4/data/pg_hba.conf.
Sergey Vlasov
13
Jangan lupa untuk mengedit postgresql.conf dan ubah / tambahkan baris
listen_addresses = '*'
Postgresql secara default mendengarkan di localhost
Bukankah contoh list_addresses Anda terlalu permisif? Itu adalah celah keamanan yang menganga jika server berjalan pada beberapa IP, yaitu publik, internal, VPN dll.
Jangan lupa untuk mengedit postgresql.conf dan ubah / tambahkan baris
listen_addresses = '*'
Postgresql secara default mendengarkan di localhost
sumber