Anda dapat menjalankan PostgreSQL tanpa root privs dengan membuat instance baru (yang disebut PostgreSQL sebagai "cluster") dan memulainya.
Anda tidak dapat menggunakan skrip init Ubuntu, alat pembungkus seperti pg_ctlcluster
, dll jika Anda melakukan ini. Anda hanya boleh menggunakan alat PostgreSQL sendiri.
Untuk membuat instance PostgreSQL baru dengan superuser yang sama dengan nama pengguna Anda, direktori data di direktori home Anda, dan autentikasi md5 diaktifkan secara default, gunakan:
initdb -D $HOME/my_postgres -A md5 -U $USER
Sesuaikan sesuai keinginan; lihat initdb --help
.
Anda kemudian harus mengedit postgresql.conf
untuk mengubah port
ke non-default, karena sistem Anda mungkin menjalankan postgresnya sendiri pada port default 5432. (Jika Anda ingin membatasi akses hanya untuk Anda, Anda dapat menyetel listen_addresses = ''
dan unix_socket_directories = /home/myuser/postgres_socket
atau terserah. Namun akan lebih mudah jika hanya menggunakan port yang berbeda.)
Untuk memulainya:
pg_ctl -D $HOME/my_postgres -w start
Untuk menghubungkannya, tentukan porta yang Anda pilih:
psql -p 5434 ...
(Jika Anda mengubah unix_socket_directories
Anda juga ingin menentukan jalur yang Anda berikan, seperti -h /home/myuser/postgres_socket
.)
Untuk membuat psql
dll terhubung ke postgres Anda secara default, edit ~/.bashrc
Anda untuk menambahkan sesuatu seperti
export PGPORT=5434
tetapi perhatikan bahwa itu juga akan memengaruhi port default untuk koneksi ke host lain.
Untuk menghentikannya:
pg_ctl -D $HOME/my_postgres -w stop
tetapi Anda juga dapat mematikannya tanpa menghentikannya, tidak peduli dan akan pulih dengan aman saat Anda memulainya berikutnya.
Untuk memulainya secara otomatis saat Anda masuk saat diatur di direktori home Anda, Anda harus menggunakan fitur run-at-startup di lingkungan desktop Anda. Mereka bervariasi tergantung pada lingkungan dan versi jadi saya tidak bisa memberikan detailnya di sini; berbeda untuk GNOME 3, Unity (ubuntu), KDE, XFCE, dll.
Perhatikan bahwa pendekatan ini masih menggunakan paket sistem untuk PostgreSQL. Ini penting karena jika Anda menghapus (katakanlah) PostgreSQL 9.4 dan menginstal 9.6, salinan Anda di direktori home Anda akan berhenti berfungsi. Jika Anda menginginkannya sepenuhnya independen dari paket sistem, seperti yang mungkin Anda lakukan jika tidak mengontrol sistem, Anda harus mengompilasi PostgreSQL dari sumber atau menggunakan penginstal biner untuk menginstal di dalam direktori home Anda.