Secara default postgresql hanya menerima koneksi dari localhost, namun untuk beberapa case kadang diperlukan remote koneksi ke postgresql. Untuk itu perlu perubahan konfigurasi supaya postgresql data menerima koneksi dari luar.
Pertama kita coba check dengan netstat. Pada terminal masukan perintah netstat -nlt. Perintah tersebut akan mengeluarkan list port yang ada pada server kita.
Cari port 5423 (default postgresql), port tersebut hanya listen dari 127.0.0.1. Untuk merubah konfigurasi tersebut pertama kita cari tahu lokasi file config postgresql, untuk mencari lokasi bisa dilakukan via psql, buka psql pada terminal, gunakan salah satu database atau database template1 (default postgresql), lalu masukan perintah show config_file;
Setelah mengetahui lokasi config file, edit file tersebut (biasanya /etc/postgresql/10/main/postgresql.conf), tambahkan listen_addresses = '*' pada akhir config file, agar kita bisa tetap menyimpan default value dari config tersebut, jika suatu saat diperlukan rollback.
Setelah merubah file tersebut bisa dilakukan check kembali pada terminal menggunakan netstat -nlt, hasilnya bisa dilihat sekarang port 5432 sudah listen dari semua ip (0.0.0.0:5432) , jika ingin restrict ke beberapa ip saja, rubah listen_ addresses dipisahkan dengan koma untuk setiap ip yang didaftarkan.
Setelah merubah config diatas masih diperlukan merubah config pada pg_hba.conf, cari file tersebut, bisa menggunakan locate pg_hba.conf, biasanya lokasinya ada di /etc/postgresql/10/main/pg_hba.conf.
Edit file tersebut, tambahkan :
host all all ip/24 md5
berurutan dari kiri kekanan :
- TYPE
- DATABASE (kita bisa restrict untuk database tertentu jika diperlukan)
- USER (kita bisa restrict untuk user tertentu jika diperlukan)
- ADDRESS (kita bisa restrict untuk ip address)
- METHOD
Setelah merubah file tersebut, restart postgresql, setelah restart postgresql bisa diakses dengan menggunakan user dan database serta dari ip yang di tambahkan pada pg_hba.
zuka.one
©2011