Vous pouvez exécuter PostgreSQL sans root privs en créant une nouvelle instance (que PostgreSQL appelle un "cluster") et en la démarrant.
Vous ne pouvez pas utiliser les scripts d'initialisation d'Ubuntu, les outils d'encapsulation comme pg_ctlcluster
, etc si vous faites cela. Vous devez utiliser uniquement les propres outils de PostgreSQL.
Pour créer la nouvelle instance PostgreSQL avec le superutilisateur égal à votre nom d'utilisateur, le répertoire de données dans votre répertoire personnel et l'authentification md5 activée par défaut, utilisez :
initdb -D $HOME/my_postgres -A md5 -U $USER
Ajustez comme vous le souhaitez; voir initdb --help
.
Vous devrez ensuite modifier postgresql.conf
pour changer le port
à un autre que celui par défaut, car votre système exécute probablement son propre postgres sur le port par défaut 5432. (Si vous souhaitez vous limiter strictement l'accès, vous pouvez à la place définir listen_addresses = ''
et unix_socket_directories = /home/myuser/postgres_socket
ou peu importe. Mais il est plus simple d'utiliser un autre port.)
Pour le démarrer :
pg_ctl -D $HOME/my_postgres -w start
Pour vous y connecter, indiquez le port que vous avez choisi :
psql -p 5434 ...
(Si vous avez modifié unix_socket_directories
vous voudrez également spécifier le chemin que vous avez donné, comme -h /home/myuser/postgres_socket
.)
Faire psql
etc connectez-vous à votre postgres par défaut, éditez votre ~/.bashrc
pour ajouter quelque chose comme
export PGPORT=5434
mais notez que cela affectera également le port par défaut pour les connexions à d'autres hôtes.
Pour l'arrêter :
pg_ctl -D $HOME/my_postgres -w stop
mais vous pouvez aussi simplement l'éteindre sans l'arrêter, il s'en moque et récupérera en toute sécurité lorsque vous le démarrerez ensuite.
Pour le démarrer automatiquement lorsque vous vous connectez lorsqu'il est configuré dans votre répertoire personnel, vous devez utiliser les fonctionnalités d'exécution au démarrage de votre environnement de bureau. Ils varient en fonction de l'environnement et de la version, je ne peux donc pas donner de détails ici. c'est différent pour GNOME 3, Unity (ubuntu), KDE, XFCE, etc.
Notez que cette approche utilise toujours le système packages pour PostgreSQL. Ceci est important car si vous désinstallez (par exemple) PostgreSQL 9.4 et installez 9.6, votre copie dans votre répertoire personnel cessera de fonctionner. Si vous voulez qu'il soit entièrement indépendant des packages système, comme vous le ferez probablement si vous ne contrôlez pas le système, vous devez compiler PostgreSQL à partir des sources ou utiliser le programme d'installation binaire pour l'installer dans votre répertoire personnel.