PostgreSQL adalah relational database management system (rdbms) yang open-source dan powerfull dengan pengembangan aktif selama lebih dari 30 tahun, memiliki reputasi kuat atas keandalan, ketahanan fitur, dan kinerja nya.
Pada artikel ini kami akan membahas bagaimana cara install dan setup PostgreSQL di ubuntu wsl. Untuk menginstall ubuntu/linux di windows dengan wsl kamu bisa membaca artikel sebelumnya.
Install PostgreSQL
1. Buka terminal di wsl Kamu dengan menekan ⊞ Win+R ketik bash
, lalu ↵ Enter.
2. Sebagaimana pada panduan install PostgreSQL di Ubuntu kita dapat menginstall versi terbaru dari PostgreSQL pada ubuntu dengan menjalankan perintah berikut :
echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-archive-keyring.gpg >/dev/null
sudo apt update
sudo apt install postgresql
3. Jalankan postgresql dengan menjalankan perintah berikut :
sudo service postgresql start
Setup Pengguna Postgres
Default pengguna dari PostgreSQL yaitu postgres. Ganti kata sandi dari pengguna tersebut dengan langkah sebagai berikut :
1. Masuk ke psql sebagai postgres
sudo -u postgres psql
2. Beri kata sandi untuk pengguna postgres di psql dengan perintah berikut, setelah selesai ketik exit
untuk keluar dari psql
ALTER USER postgres WITH ENCRYPTED PASSWORD 'kata_sandi_postgres_yang_kamu_inginkan';
Membuat Pengguna Dan Database Baru
1. Masuk ke psql sebagai postgres
sudo -u postgres psql
2. Masukan perintah untuk membuat pengguna baru, untuk lebih jelasnya bisa dilihat pada dokumentasi resmi PostgreSQL.
CREATE USER "nama_pengguna" WITH ENCRYPTED PASSWORD 'kata_sandi_pengguna_yang_kamu_inginkan';
4. Buat database baru dan pindahkan owner nya ke pengguna baru tersebut agar pengguna baru tersebut bisa memiliki akses penuh terhadap database tersebut (selain pengguna yang di set sebagai owner tersebut, pengguna postgres tetap bisa memiliki akses penuh terhadap semua database)
CREATE DATABASE "nama_database";
ALTER DATABASE "nama_database" OWNER TO "nama_pengguna";
5. Apabila tidak ingin mengarahkan owner dari database tertentu namun database tersebut ingin bisa diakses oleh pengguna yang bersangkutan, maka kita bisa bisa masuk ke database tersebut dan menambahkan kewenangan mengenai apa saja yang ingin kita tambahkan, untuk lebih jelasnya bisa dilihat pada dokumentasi resmi PostgreSQL
\c "nama_database"
GRANT ALL PRIVILEGES ON DATABASE "nama_database" TO "nama_pengguna";
GRANT ALL PRIVILEGES ON SCHEMA "public" TO "nama_pengguna";
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "public" TO "nama_pengguna";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "public" TO "nama_pengguna";
6. ketik exit
untuk keluar dari psql
Backup & Restore Database
Untuk melakukan backup database pada PostgreSQL kita bisa menjalankan perintah berikut :
pg_dump \
--format=custom \
--verbose \
--no-privileges \
--no-owner \
--host=127.0.0.1 \
--port=5432 \
--username=nama_pengguna \
--password=kata_sandi \
--dbname=nama_database > nama_database_dan_tanggal_backup.dump
Sedangkan untuk melakukan restore database pada PostgreSQL kita bisa menjalankan perintah berikut, setelah itu masukan kata sandi dari pengguna database tersebut :
pg_restore \
--verbose \
--no-privileges \
--no-owner \
--host=127.0.0.1 \
--port=5432 \
--username=nama_pengguna \
--password \
--dbname=nama_database nama_database_dan_tanggal_backup.dump
Apabila kita ingin melakukan restore database dari file .sql
kita bisa menjalankan perintah berikut
psql postgresql://{nama_pengguna}:{kata_sandi}@127.0.0.1:5432/{nama_database} -f nama_dan_tanggal_backup.sql
Untuk lebih jelasnya, kita bisa merujuk pada dokumentasi resmi PostgreSQL
Hubungkan GUI di Windows ke Database
Selanjutnya kamu bisa menggunakan GUI Favorit kamu di Windows untuk mengakses database PostgreSQL, apabila kamu menggunakan dbeaver kamu bisa menekan Test Connection...
untuk mengecek apakah dbeaver dapat terhubung ke database kamu atau tidak.
Menjalankan PostgreSQL Sebagai Services
Tidak seperti pada ubuntu / linux yang berdiri sendiri, wsl tidak dapat menggunakan upstart atau systemd sebagai daemon / service management, oleh karena itu kita bisa melakukan hal berikut untuk menjalankan aplikasi sebagai services di wsl.
1. Buat / buka file pada /etc/sudoers.d/
sudo vi /etc/sudoers.d/wsl
2. Edit dengan menekan Insert dan tambahkan baris berikut agar tidak perlu memasukan password saat akan menjalankan PostgreSQL :
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service postgresql *
3. Simpan file tersebut dengan menekan Esc lalu ketik :x
dan tekan ↵ Enter.
4. Buka lokasi startup windows Kamu dengan menekan ⊞ Win+R ketik shell:startup
, lalu ↵ Enter.
5. Ketik bash
pada address bar.
6. Buat file .bat
pada lokasi tersebut
vi wsl-postgresql.bat
7. Edit dengan menekan Insert dan tambahkan baris berikut :
wsl sudo service postgresql start
8. Simpan file tersebut dengan menekan Esc lalu ketik :x
dan tekan ↵ Enter.
9. Restart komputer kamu, dan cek kembali apakah PostgreSQL sudah otomatis dijalankan.
Demikian artikel kali ini, semoga bermanfaat.