PostgreSQL - Instalasi dan Konfigurasi

Entah kenapa, saya lebih familiar mySQL dibanding dengan postgresql, mungkin karena faktor "kemudahan" dan pengguna yang relatif banyak, sehingga ketika stuck dengan masalah, kita dapat dengan mudah browsing referensi di internet atau phone a friend, hehehe..

Sekilas PostgreSQL

Ada hal mendasar yang seringkali membuat bingung bagi pengguna pemula database postgresql, yakni sistem autentikasi. Kalau di mysql lazimnya kita mengenal auth dengan username dan password, jika keduanya cocok, kita dapat dengan mudah memulai proses manajemen dan manipulasi database.

Install

sudo apt install postgresql postgresql-contrib

Peer Authentication

Di postgresql, sistem authentikasi secara default adalah menggunakan peer. Saya juga tidak terlalu paham dengan istilah peer auth ini, tapi yang jelas bukan sistem username/passwd seperti yang kita kenal selama ini. Untungnya postgresql juga menyediakan sistem auth dengan username/passwd seperti di mysql. Caranya adalah dengan mengubah file config (pg_hba.conf), yang jika di OS Ubuntu berada di /etc/postgresql/9.5/main/pg_hba.conf.

Cari baris


local all all peer

Ganti dengan


local all all md5

Simpan, kemudian restart service. Sekarang sistem auth postgresql menggunakan sistem username/passwd.

Langkah kedua adalah membuat user. User postgresql default adalah postgres dengan status sebagai superadmin (semua bisa dilakukan, no restrictions), namun setelah mengubah ke md5, kita dapat dengan menambahkan user melalui postgresql shell prompt.

Masuk ke postgresql prompt


sudo su - postgres

Kemudian buat user


createuser -U postgres -d -e -E -l -P -r -s namauser

*PS: postgres ini nama user default di linux, kalau di mac, install postgres pakai homebrew, maka default-nya adalah username dari komputer/laptop.

Exit ke bash prompt lagi, sekarang mari kita buat dbase dengan menggunakan user yang sudah dibuat sebelumnya.


createdb -O kholidfu -U kholidfu namadbase -W

Masukkan password

Atau jika ingin drop postgresql database,


dropdb -U kholidfu namadbase -W

Django dan PostgreSQL

Di dokumentasi resmi django, ada beberapa hal yang dilakukan oleh USER untuk meningkatkan kinerja database di django. Seperti dari tulisan digitalocean berikut:

Berikut ini konfigurasi tambahan untuk postgresql dari django:


ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myprojectuser SET timezone TO 'UTC';

Command Yang Sering Dipakai

Login ke postgresql prompt sebagai user postgres

sudo su - postgres

Login ke postgresql repl sebagai user postgres

sudo -u postgres psql

Melihat list database

sudo -u postgres psql -c '\l;'

Mengetahui semua user di postgresql

sudo -u postgres psql -c "SELECT * FROM pg_shadow;"

Sekian....

Comments

Popular posts from this blog

Adding Image Alternate Text into WordPress Image Attachment using python-wordpress-xmlrpc Library

Keutamaan Tidur yang Sedikit Menurut para Ulama

Kisah Nabi Uzair a.s.