Lewati ke konten utama
๐Ÿš€ nusa.id cloud server linux indonesialihat paket

Cara Install PostgreSQL dan pgAdmin di Ubuntu 24.04

ยท 7 menit membaca
Ilhamsyah
Maintainer

Manajemen database relasional via command line seringkali memperlambat proses development dan debugging. Kombinasi PostgreSQL sebagai database engine dan pgAdmin sebagai antarmuka visual menyelesaikan masalah ini dengan menyediakan kontrol penuh atas schema, query, dan user privilege dari browser.

Requirementsโ€‹

Sebelum memulai, pastikan server Anda memenuhi syarat berikut:

  • Akses root atau user dengan hak akses sudo.
  • RAM minimal 2GB (direkomendasikan 4GB jika menangani workload query berat).
  • Firewall (UFW) dalam kondisi aktif namun mengizinkan trafik HTTP/HTTPS untuk akses web.
  • Package manager apt yang sudah diperbarui.

Lingkungan Pengujianโ€‹

Dokumentasi ini disusun dan diuji pada lingkungan dengan spesifikasi berikut:

  • Sistem Operasi: Ubuntu 24.04 LTS (Noble Numbat)
  • PostgreSQL: Versi 16.14 (dari repositori default Ubuntu)
  • pgAdmin 4: Versi 9.16 (dari repositori resmi pgAdmin)
  • Web Server: Apache2 (sebagai host untuk pgAdmin web interface)

Panduan ini menggunakan Nusa Cloud VPS sebagai lingkungan pengujian, namun langkah-langkahnya berlaku secara universal untuk server Linux Ubuntu 24.04 mana pun.

Instalasi PostgreSQLโ€‹

Ubuntu 24.04 secara default menyediakan PostgreSQL 16 dalam repositori utamanya. Ini memastikan stabilitas dan kompatibilitas sistem.

  1. Perbarui indeks package sistem:

    sudo apt-get update
  2. Install core package PostgreSQL beserta modul kontribusi yang menyediakan fitur tambahan seperti enkripsi dan fungsi UUID:

    sudo apt-get install -y postgresql postgresql-contrib
  3. Service PostgreSQL akan berjalan secara otomatis setelah instalasi. Periksa status service:

    sudo systemctl status postgresql

    Output yang diharapkan:

    โ— postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: enabled)
    Active: active (running) since ...

Verifikasi Instalasi PostgreSQLโ€‹

Pastikan CLI PostgreSQL merespons dengan versi yang tepat sesuai catatan versi upstream.

Jalankan perintah berikut:

psql --version

Output:

psql (PostgreSQL) 16.14 (Ubuntu 16.14-0ubuntu0.24.04.1)

Konfigurasi Password Defaultโ€‹

Secara default, instalasi PostgreSQL membuat sistem user postgres yang tidak memiliki password untuk login database, melainkan menggunakan metode otentikasi peer. Untuk memungkinkan pgAdmin melakukan koneksi, kita harus menetapkan password.

  1. Buka prompt PostgreSQL menggunakan akun postgres:

    sudo -u postgres psql
  2. Ubah password untuk user postgres (ganti PasswordKuat123 dengan password aman pilihan Anda):

    ALTER USER postgres PASSWORD 'PasswordKuat123';
  3. Keluar dari prompt psql:

    \q

Instalasi pgAdmin 4โ€‹

Paket pgAdmin 4 tidak tersedia dalam repositori default Ubuntu 24.04 versi LTS. Kita perlu menambahkan repositori resmi dari pgAdmin.

  1. Install curl jika belum tersedia:

    sudo apt-get install -y curl
  2. Download public key repositori pgAdmin dan konversi menjadi format keyring yang dikenali oleh apt:

    curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
  3. Buat file list repositori pgAdmin:

    sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/noble pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list'
  4. Update package agar memasukkan repositori yang baru ditambah:

    sudo apt-get update
  5. Install pgAdmin 4 versi web. Proses ini juga akan menginstal Apache2 sebagai web server dependensi jika belum ada di sistem:

    sudo apt-get install -y pgadmin4-web

Verifikasi Instalasi pgAdminโ€‹

Validasi instalasi dengan mengecek ketersediaan paket di dalam sistem:

dpkg -l pgadmin4-web

Output:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-====================================
ii pgadmin4-web 9.16 all The web interface for pgAdmin...

Konfigurasi Web Interface pgAdminโ€‹

Setelah paket terinstal, jalankan script setup yang disediakan oleh pgAdmin untuk mengatur akun login web dan mengonfigurasi Apache2.

  1. Jalankan script setup web:

    sudo /usr/pgadmin4/bin/setup-web.sh
  2. Anda akan diminta memasukkan email dan password untuk akun login administrator pgAdmin:

    Setting up pgAdmin 4 in web mode on a Debian based platform...
    Creating configuration database...
    NOTE: Configuring authentication for SERVER mode.

    Enter the email address and password to use for the initial pgAdmin user account:
    Email address: admin@example.com
    Password:
    Retype password:
  3. Setup kemudian meminta izin untuk mengonfigurasi Apache2:

    The Apache web server is running and must be restarted for the pgAdmin 4 installation to complete. Continue (y/n)? y
    Apache successfully restarted. You can now start using pgAdmin 4 in web mode at http://127.0.0.1/pgadmin4

Pengujian Fungsionalโ€‹

Setelah instalasi dan konfigurasi berhasil, mari uji fungsionalitas dari ujung ke ujung.

  1. Buka browser dan arahkan ke alamat IP server Anda, diikuti dengan path /pgadmin4. Contoh: http://ip-server-anda/pgadmin4.
  2. Halaman login pgAdmin 4 akan muncul. Masukkan alamat email dan password yang telah Anda buat pada tahap konfigurasi web interface.
  3. Klik tombol Login.
  4. Di dashboard pgAdmin, klik Add New Server.
  5. Pada tab General, isi kolom Name (misalnya PostgreSQL Lokal).
  6. Pada tab Connection, isi data berikut:
    • Host name/address: 127.0.0.1 atau localhost
    • Port: 5432
    • Maintenance database: postgres
    • Username: postgres
    • Password: Password yang Anda setel di psql sebelumnya.
  7. Klik Save.
  8. Server baru akan muncul di sidebar sebelah kiri. Klik panah di samping nama server untuk memastikan daftar database muncul tanpa error koneksi.

Troubleshootingโ€‹

Berikut adalah masalah operasional yang sering terjadi saat menginstal PostgreSQL dan pgAdmin 4, beserta solusi praktisnya.

1. Peer Authentication Failed untuk User Postgresโ€‹

Gejala: Saat mencoba menambah server di pgAdmin menggunakan IP 127.0.0.1 atau localhost, muncul notifikasi error FATAL: peer authentication failed for user "postgres".

Penyebab: PostgreSQL menggunakan metode otentikasi peer untuk koneksi lokal secara default, yang berarti nama user sistem operasi harus sama persis dengan nama user database. pgAdmin terhubung melalui koneksi TCP/IP yang membutuhkan metode autentikasi password seperti scram-sha-256.

Perbaikan: Edit file konfigurasi pg_hba.conf. Letak file berada di /etc/postgresql/16/main/pg_hba.conf.

Buka file menggunakan text editor pilihan Anda:

# Menggunakan nano:
sudo nano /etc/postgresql/16/main/pg_hba.conf

# Menggunakan vim:
sudo vim /etc/postgresql/16/main/pg_hba.conf

Cari baris berikut:

# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256

Pastikan metodenya adalah scram-sha-256 (atau md5 pada versi lama). Jika tertulis peer, ubah menjadi scram-sha-256.

Restart service PostgreSQL:

sudo systemctl restart postgresql

2. Error 404 Not Found Saat Mengakses /pgadmin4โ€‹

Gejala: Browser menampilkan halaman "404 Not Found" atau halaman default Apache saat mengakses http://ip-server-anda/pgadmin4.

Penyebab: Script konfigurasi web pgAdmin gagal melakukan reload pada web server Apache2, atau modul WSGI belum diaktifkan.

Perbaikan: Verifikasi bahwa konfigurasi pgAdmin tersedia dan restart Apache secara manual.

sudo a2enconf pgadmin4
sudo systemctl restart apache2

3. GPG Error Signature Verification Failedโ€‹

Gejala: Saat menjalankan perintah sudo apt-get update, proses berhenti dengan pesan GPG error The following signatures couldn't be verified.

Penyebab: File keyring pgAdmin corrupt, belum terunduh dengan sempurna, atau sudah kadaluarsa dari sisi repositori upstream.

Perbaikan: Hapus file keyring yang ada, kemudian unduh ulang public key secara hati-hati.

โš ๏ธ Peringatan: Menghapus file di dalam /usr/share/keyrings/ berpotensi mengganggu repositori pihak ketiga lainnya. Pastikan Anda hanya menghapus file spesifik milik pgAdmin.

sudo rm -f /usr/share/keyrings/packages-pgadmin-org.gpg
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
sudo apt-get update

Verifikasi Akhirโ€‹

Untuk memastikan seluruh stack berjalan normal setelah melakukan troubleshooting, jalankan serangkaian verifikasi port dan service.

Cek port default PostgreSQL (5432):

ss -tlnp | grep 5432

Output menunjukkan proses postmaster sedang mendengarkan (listening).

Cek port default Apache2 (80):

ss -tlnp | grep 80

Output menunjukkan proses apache2 merespons trafik HTTP.

Kedua pengecekan ini mengonfirmasi sistem siap melayani query database lokal dan antarmuka kontrol melalui browser.