GNU/Linux >> Tutoriels Linux >  >> Linux

Créer une base de données PostgreSQL sans privilège root

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.


Linux
  1. Serveur de base de données PostgreSQL

  2. Comment sauvegarder et restaurer une base de données dans PostgreSQL

  3. Installer zsh sans accès root ?

  4. Exécutez ifconfig sans sudo

  5. Comment créer un utilisateur root supplémentaire ?

Comment créer une base de données dans PostgreSQL

Installer PostgreSQL sur Ubuntu 20.04

Comment installer PostgreSQL 14 dans RHEL 8 Linux

Comment créer une base de données PostgreSQL ?

Comment créer une base de données dans MySQL

15 commandes pratiques d'administration de base de données PostgreSQL