Cara Pasang PostgreSQL 17 di Ubuntu 24.04
Langkah memasang PostgreSQL 17 di Ubuntu 24.04 lewat repositori resmi PGDG, membuat user dan database, lalu membuka akses dengan aman.
Jawaban singkat
Ubuntu 24.04 bawaan menyediakan PostgreSQL 16. Untuk versi 17, tambahkan repositori resmi PGDG dengan skrip apt.postgresql.org.sh, pasang paket postgresql-17, lalu buat user dan database sendiri sebelum membuka akses jaringan.
Daftar isi
- Apa yang perlu disiapkan?
- Bagaimana langkah pemasangannya?
- 1. Perbarui sistem
- 2. Tambahkan repositori PGDG
- 3. Pasang PostgreSQL 17
- 4. Pastikan layanan berjalan
- 5. Buat user dan database untuk aplikasi
- 6. Buka akses dari server lain (bila perlu)
- 7. Kunci port dengan firewall
- Setelan awal apa yang layak diubah?
- Sampai kapan PostgreSQL 17 didukung?
- Pertanyaan yang sering diajukan
- Checklist singkat
Butuh PostgreSQL 17 di VPS Ubuntu 24.04, tapi apt install postgresql malah memasang versi 16? Itu wajar. Ubuntu membekukan satu versi PostgreSQL untuk setiap rilisnya, dan untuk Ubuntu 24.04 versi itu adalah 16.
Jalan resminya adalah menambahkan repositori PGDG (PostgreSQL Global Development Group) di apt.postgresql.org. Repositori ini dikelola komunitas PostgreSQL sendiri, mendukung Ubuntu 24.04 (noble), dan menyediakan beberapa versi utama sekaligus. Seluruh prosesnya hanya butuh beberapa menit.
Apa yang perlu disiapkan?
- VPS atau server dengan Ubuntu 24.04 LTS dan akses
sudo. - Koneksi internet dari server ke apt.postgresql.org.
- Sekitar 1 GB RAM sudah cukup untuk mencoba. Untuk produksi, sesuaikan dengan ukuran data dan jumlah koneksi.
Kalau kamu masih menimbang engine database, ada perbandingan PostgreSQL, MySQL, dan MariaDB yang bisa dibaca dulu.
Bagaimana langkah pemasangannya?
1. Perbarui sistem
sudo apt update && sudo apt upgrade -y
2. Tambahkan repositori PGDG
Cara termudah adalah skrip otomatis dari paket postgresql-common, sesuai dokumentasi resmi:
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
Skrip akan meminta konfirmasi, lalu menambahkan kunci penandatangan dan sumber paket untuk Ubuntu versimu.
Kalau kamu lebih suka cara manual, dokumentasi PostgreSQL juga menjelaskan cara mengunduh kunci ke /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc dan membuat file /etc/apt/sources.list.d/pgdg.sources dengan suite noble-pgdg. Hasil akhirnya sama.
3. Pasang PostgreSQL 17
sudo apt update
sudo apt install -y postgresql-17
Paket ini otomatis membuat cluster bernama main, dengan konfigurasi di /etc/postgresql/17/main/ dan data di /var/lib/postgresql/17/main/.
4. Pastikan layanan berjalan
sudo systemctl status postgresql
pg_lsclusters
sudo -u postgres psql -c "SELECT version();"
Perintah pg_lsclusters menampilkan versi, port, dan status setiap cluster. Biasanya cluster 17 memakai port 5432.
5. Buat user dan database untuk aplikasi
Jangan memakai user postgres untuk aplikasi. Buat user khusus:
sudo -u postgres createuser --pwprompt appuser
sudo -u postgres createdb -O appuser appdb
Opsi --pwprompt meminta kamu mengetik password. Opsi -O appuser menjadikan appuser pemilik database appdb, sehingga ia bisa membuat tabel tanpa hak superuser.
Uji login lewat koneksi lokal:
psql -h 127.0.0.1 -U appuser -d appdb
6. Buka akses dari server lain (bila perlu)
Secara bawaan, PostgreSQL hanya mendengarkan localhost. Kalau aplikasi berada di server yang sama, berhenti di langkah 5. Kalau aplikasi ada di server lain, ubah dua file.
Di /etc/postgresql/17/main/postgresql.conf, atur alamat yang didengarkan:
listen_addresses = 'localhost,10.0.0.5'
Ganti 10.0.0.5 dengan IP server database yang ingin dipakai (sebaiknya IP privat). Lalu di /etc/postgresql/17/main/pg_hba.conf, izinkan hanya IP aplikasi:
host appdb appuser 10.0.0.20/32 scram-sha-256
Metode scram-sha-256 adalah metode password yang direkomendasikan dokumentasi PostgreSQL. Terapkan perubahan:
sudo systemctl restart postgresql
7. Kunci port dengan firewall
Izinkan port 5432 hanya dari IP aplikasi:
sudo ufw allow from 10.0.0.20 to any port 5432 proto tcp
Pastikan aturan SSH sudah ada sebelum mengaktifkan UFW. Penjelasan lengkapnya ada di cara setting UFW di Ubuntu 24.04.
Setelan awal apa yang layak diubah?
Konfigurasi bawaan PostgreSQL sangat hemat dan aman, tapi belum memanfaatkan RAM server. Beberapa parameter di postgresql.conf yang paling sering disesuaikan:
| Parameter | Fungsi | Titik awal yang umum |
|---|---|---|
shared_buffers | Memori cache data milik PostgreSQL | Sekitar 25% RAM |
effective_cache_size | Perkiraan cache total (termasuk cache OS) untuk perencana query | Sekitar 50 sampai 75% RAM |
work_mem | Memori per operasi sort/hash | Naikkan pelan-pelan, karena dikalikan jumlah operasi |
max_connections | Batas koneksi bersamaan | Sesuaikan aplikasi, pertimbangkan pooler seperti PgBouncer |
Untuk melihat nilai yang sedang berlaku tanpa membuka file, masuk ke psql lalu jalankan SHOW shared_buffers;, atau baca tabel pg_settings. Cara ini juga membantu memastikan perubahanmu sudah terbaca setelah reload.
Angka di atas hanya titik awal. Ubah satu per satu, lalu amati performanya. Parameter shared_buffers butuh restart, sedangkan sebagian lain cukup sudo systemctl reload postgresql.
Sampai kapan PostgreSQL 17 didukung?
Kebijakan resmi PostgreSQL memberi setiap versi utama dukungan sekitar lima tahun. PostgreSQL 17 dirilis September 2024, dan menurut halaman versioning resmi, dukungannya berakhir November 2029. Selama itu, rilis minor (misalnya 17.x) membawa perbaikan bug dan keamanan, dan cukup dipasang lewat sudo apt upgrade.
Versi 18 juga sudah tersedia di repositori yang sama. Bila sedang memulai proyek baru, lihat dulu fitur baru PostgreSQL 18 untuk menimbang mana yang lebih cocok.
Pertanyaan yang sering diajukan
Apakah repositori PGDG aman dipakai di server produksi?
Ya. Repositori ini dikelola oleh komunitas PostgreSQL dan menjadi jalur resmi yang direkomendasikan di postgresql.org untuk mendapatkan versi yang lebih baru dari bawaan Ubuntu.
Bagaimana cara mengganti password user postgres?
Masuk dengan sudo -u postgres psql, lalu jalankan \password postgres. Untuk server yang hanya diakses lokal, user postgres cukup dipakai lewat sudo tanpa login password.
Kenapa koneksi dari server lain ditolak padahal pg_hba.conf sudah diubah?
Biasanya karena listen_addresses masih localhost, layanan belum di-restart, atau firewall belum membuka port 5432 untuk IP tersebut. Cek ketiganya berurutan.
Apakah bisa memasang PostgreSQL 16 dan 17 bersamaan?
Bisa. Setiap versi berjalan sebagai cluster terpisah dengan port berbeda. Kelola dengan pg_lsclusters, pg_ctlcluster, dan pg_upgradecluster.
Bagaimana cara backup database PostgreSQL?
Untuk satu database, gunakan pg_dump. Jadwalkan secara otomatis dan simpan salinannya di luar server. Contohnya ada di panduan backup database otomatis.
Checklist singkat
- Repositori PGDG terpasang dan
postgresql-17aktif. pg_lsclustersmenunjukkan cluster 17 online di port yang benar.- Aplikasi memakai user sendiri, bukan
postgres. - Akses jaringan dibatasi lewat
pg_hba.confdan firewall. - Backup terjadwal sudah berjalan.


