Setting Up Database PostgreSQL pada Remote Server Ubuntu 20.04
13 Nov 2020
PostgreSQL merupakan sebuah relational database management system yang mampu menangani beban kerja yang berat dari suatu perangkat komputer ke sebuah data centre.
Pada Artikel ini saya akan memberikan tutorial singkat untuk membuat sebuah database yang menggunakan PostgreSQL bisa diakses secara remote.
Step 1: Install PostgreSQL
Langkah pertama untuk dapat menginstall PostgreSQL pada server tentu saja mengakses server, di langkah ini saya akan menggunakan metode SSH dengan menjalankan perintah berikut ini pada terminal:
ssh server_user@server_ip
- catatan: server_user adalah nama user pada server dan server_ip adalah IP address untuk server.
Kemudian jalankan command berikut ini:
sudo apt-get update
Ketika sudah selesai, install PostgreSQL dengan menjalankan:
sudo apt-get install postgresql postgresql-contrib
Dengan perintah di atas, maka Postgres akan diinstall dengan disertai dependencies yang diperlukan. Ketika sudah selesai diinstall, lakukan switch user ke user postgres agar bisa melakukan perintah Postgres dengan menjalankan:
sudo su - postgres
Akses PostgreSQL dengan menggunakan perintah:
psql
Setelah menjalakan command psql:
Step 2: Membuat User
Pada langkah ini, kita perlu membuat user yang digunakan untuk mengakses database secara remote dengan terlebih dahulu keluar dari Postgres Shell dengan cara:
\q
Dapat dilihat gambar di atas masih menunjukkan bahwa saat ini masih menggunakan user postgres, maka untuk melanjutkan membuat user bisa langsung menjalankan perintah berikut ini:
createuser --interactive --pwprompt
Dengan menggunakan command tersebut maka akan muncul tampilan seperti di atas untuk mengisi nama user, password, dan sebuah opsi untuk menentukan role user yang akan dibuat.
Setelah membuat user, maka langkah selanjutnya adalah membuat sebuah database. Perintah untuk membuat database:
createdb -O example_user databse_example
Untuk mengecek database yang sudah dibuat:
psql
Kemudian:
\l
Maka akan muncul gambar seperti ini yang menunjukkan bahwa databse_example sudah dibuat yang dimiliki oleh user example_user. Untuk keluar dari tampilan di bawah, tekan huruf q pada keyboard.
Step 3: Allow Remote Access
Ini adalah langkah terakhir untuk memperbolehkan database dapat diakses secara remote, untuk melakukan hal tersebut maka keluar dari user postgres dengan menggunakan command exit dan lanjutkan dengan command:
sudo vim /etc/postgresql/12/main/postgresql.conf
atau
sudo nano /etc/postgresql/12/main/postgresql.conf
- Note: Pada saat artikel ini dibuat, saya menggunakan PostgreSQL versi 12.
Setelah masuk ke editor dengan salah satu pilihan di atas, cari line dengan tulisan seperti ini:
#listen_addresses = 'localhost'
Kemudian uncomment (hilangkan "#") dan ganti 'localhost' menjadi '*'
listen_addresses = '*'
Save dan keluar dari file tersebut.
Langkah selanjutnya adalah mengedit file "pg_hba.conf".
sudo vim /etc/postgresql/12/main/pg_hba.conf
atau
sudo nano /etc/postgresql/12/main/pg_hba.conf
Kemudian edit bagian ini:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
menjadi
# IPv4 local connections:
host all all 0.0.0.0/0 md5
Save dan keluar setelah melakukan perubahan. Langkah selanjutnya adalah memperbolehkan port 5432 untuk diakses.
sudo ufw allow 5432/tcp
Setelah itu restart PostgreSQL untuk apply perubahan yang tadi dilakukan.
sudo systemctl restart postgresql
Mengakses PostgreSQL secara remote:
Untuk mengecek apakah PostgreSQL sudah dapat diakses secara remote atau belum, maka dapat menjalankan perintah berikut ini:
psql -h dimasutomo.com -d databse_example -U example_user
- Note: 'dimasutomo.com' adalah nama domain saya yang bisa diganti dengan IP Address, 'databse_example' adalah nama database, dan 'example_user' adalah nama user.
Gambar di atas menunjukkan bahwa database PostgreSQL sudah dapat diakses secara remote dan bisa diaplikasikan sesuai dengan kebutuhan pada suatu project.