Puoi eseguire PostgreSQL senza privilegi di root creando una nuova istanza (che PostgreSQL chiama "cluster") e avviandola.
Non puoi usare gli script init di Ubuntu, strumenti wrapper come pg_ctlcluster
, ecc. se lo fai. Devi utilizzare solo gli strumenti di PostgreSQL.
Per creare la nuova istanza PostgreSQL con il superutente uguale al tuo nome utente, la directory dei dati nella tua home directory e l'autenticazione md5 abilitata per impostazione predefinita, usa:
initdb -D $HOME/my_postgres -A md5 -U $USER
Regolare come desiderato; vedi initdb --help
.
Dovrai quindi modificare postgresql.conf
per modificare il port
a uno non predefinito, poiché il tuo sistema probabilmente esegue il proprio postgres sulla porta predefinita 5432. (Se vuoi limitare l'accesso strettamente a te, puoi invece impostare listen_addresses = ''
e unix_socket_directories = /home/myuser/postgres_socket
o qualsiasi altra cosa. Ma è più semplice usare semplicemente una porta diversa.)
Per avviarlo:
pg_ctl -D $HOME/my_postgres -w start
Per connetterti, specifica la porta che hai scelto:
psql -p 5434 ...
(Se hai cambiato unix_socket_directories
vorrai anche specificare il percorso che hai dato, come -h /home/myuser/postgres_socket
.)
Per fare psql
etc connettiti al tuo postgres per impostazione predefinita, modifica il tuo ~/.bashrc
per aggiungere qualcosa come
export PGPORT=5434
ma tieni presente che influenzerà anche la porta predefinita per le connessioni ad altri host.
Per fermarlo:
pg_ctl -D $HOME/my_postgres -w stop
ma puoi anche semplicemente spegnerlo senza fermarlo, non importa e si ripristinerà in modo sicuro quando lo avvierai la prossima volta.
Per avviarlo automaticamente quando accedi quando è impostato nella tua home directory, dovresti utilizzare le funzionalità di esecuzione all'avvio del tuo ambiente desktop. Variano a seconda dell'ambiente e della versione, quindi non posso fornire dettagli qui; è diverso per GNOME 3, Unity (ubuntu), KDE, XFCE, ecc.
Si noti che questo approccio utilizza ancora i pacchetti di sistema per PostgreSQL. Questo è importante perché se disinstalli (diciamo) PostgreSQL 9.4 e installi 9.6, la tua copia nella tua home directory smetterà di funzionare. Se lo vuoi completamente indipendente dai pacchetti di sistema, come probabilmente fai se non controlli il sistema, dovresti compilare PostgreSQL dai sorgenti o utilizzare l'installer binario per l'installazione all'interno della tua home directory.