Install Postgresql 17 di Red Hat family
Step Step Langkah Install
1. Install Repository RPM
Jika Versi 8 maka gunakan :
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Jika Versi 9 maka gunakan :
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2. Nonaktifkan modul PostgreSQL bawaan:
sudo dnf -qy module disable postgresql
3.Install PostgreSQL
sudo dnf install -y postgresql17-server
4. Inisialisasi database
sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
5. Aktifkan mulai otomatis
sudo systemctl enable postgresql-17
Kemudian jalankan
sudo systemctl start postgresql-17
6. Akses Postgresql dengan menggunakan user postgres
sudo -i -u postgres psql
setelah berhasil ke postgres=# kita sudah bisa membuat user dan create database dan config lainnya
7. Buat User (Role) Baru, secara default setelah install
postgres otomatis di server tercreate user postgres
Gunakan perintah berikut untuk membuat user dengan password:
CREATE USER nama_user WITH PASSWORD 'password_user';
Silahkan sesuaikan nama_user dan password_user, sesuai kebutuhan
8. Buat Database Baru, secara, secara default setelah install postgres otomatis di server tercreate database postgres
Gunakan perintah berikut untuk membuat database:
CREATE DATABASE nama_database OWNER nama_user;
silahkan sesuaikan nama_database dan nama_user sesuai kebutuhan
9. Berikan Hak Akses ke User yang telah dibuat
Pastikan user memiliki hak akses ke database yang dibuat:
GRANT ALL PRIVILEGES ON DATABASE nama_database TO nama_user;
sesuaikan nama_database dan nama_user sesuai nama database dan nama user yang telah di buat menggunakan perintah sebelumnya
10. Keluar dari PostgreSQL dengan:
\q
atau bisa juga ketik dengan
exit
11. Konfigurasi PostgreSQL untuk Remote Access
Agar bisa di akses dari luar kita perlu melakukan konfiguasi dengan melakukan edit pada
a. Edit postgresql.conf
Buka file postgresql.conf yang biasanya ada di /var/lib/pgsql/17/data/
sudo vi /var/lib/pgsql/17/data/postgresql.conf
Cari baris berikut dan rubah:
#listen_addresses = 'localhost'
Rubah menjadi :
listen_addresses = '*'
Simpan dan keluar.
b. Edit pg_hba.conf
Buka file pg_hba.conf di direktori yang sama /var/lib/pgsql/17/data/
sudo vi /var/lib/pgsql/17/data/pg_hba.conf
Tambahkan setelah baris di bawah ini
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256
Tambahkan baris berikut setelah baris di atas untuk mengizinkan akses dari semua IP (atau spesifik subnet):
host all all 0.0.0.0/0 md5
Setelah di tambahkan menjadi
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256 host all all 0.0.0.0/0 md5 # IPv6 local connections: host all all ::1/128 scram-sha-256
Jika ingin melakukan spesifik ip yang memperbolehkan ip segman mana saja silahkan tambahkan sampe spesifik
Contoh Jika hanya ingin mengizinkan subnet tertentu (misalnya 192.168.1.0/24 ), gunakan:
host all all 192.168.1.0/24 md5
Jika di buatkan spesifik maka ip selain depannya 192.168.1 maka tidak di izinkan mengakses database
setelah di lakukan edit kemudian di save
12. Restart PostgreSQL
Restart layanan PostgreSQL agar perubahan diterapkan:
sudo systemctl restart postgresql-17
13. Pastikan Firewall Mengizinkan Akses ke Port default 5432 PostgreSQL
Buka port default PostgreSQL (5432) di firewall:
sudo firewall-cmd --add-port=5432/tcp --permanent
Kemudian jalankan perintah berikut agar perubahan bisa di terapkan
sudo firewall-cmd --reload
14. Uji Remote Connection
Coba akses PostgreSQL dari mesin remote menggunakan psql atau aplikasi database client seperti DBeaver:
psql -h alamat_ip_server -U nama_user -d nama_database
Silahkan sesuaikan alamat_ip_server, nama_user dan nama_database