GNU/Linux >> Tutoriels Linux >  >> Linux

Postgresql 9.3 sur Centos 7 avec PGDATA personnalisé

Vous devez créer un postgresql.service personnalisé fichier en /etc/systemd/system/ , qui remplace le PGDATA par défaut variables d'environnement. Votre fichier de service personnalisé peut .include le fichier de service postgresql par défaut, il vous suffit donc d'ajouter ce que vous souhaitez modifier. De cette façon, les mises à niveau peuvent toujours modifier/améliorer ? dans le fichier de service par défaut, tandis que votre modification est conservée.

Voici comment je viens de le faire dans Centos 7 :

cat <<END >/etc/systemd/system/postgresql.service
.include /lib/systemd/system/postgresql.service
[Service]
Environment=PGDATA=/mnt/postgres/data ## <== SET THIS TO YOUR WANTED $PGDATA
END

systemctl daemon-reload

systemctl restart postgresql.service

Vérifier :

ps -ax | grep [p]ostgres

Mise à jour :

Plutôt que de créer manuellement le fichier et d'ajouter la ligne .include, vous pouvez également utiliser la méthode intégrée systemd :

systemctl edit postgresql.service

Cela ouvrira votre éditeur par défaut et enregistrera vos modifications dans /etc/systemd/system/postgresql.service.d/override.conf


Je pense que la manière la plus "CentOS 7" de le faire est de copier le fichier de service :

sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service

Modifiez ensuite le fichier /etc/systemd/system/postgresql-9.6.service :

# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/

Puis démarrez-le sudo systemctl start postgresql-9.6 et vérifiez :

# sudo ps -ax | grep postmaster
32100 ?        Ss     0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/

essayez ceci :

 ## Login with postgres user
 su - postgres
 export PGDATA=/your_path/data
 pg_ctl -D $PGDATA start &

Il semble que le vrai problème était de définir les variables d'environnement, que j'ai travaillé dans le fil suivant :Variables d'environnement Centos 7 pour le service PostgresLe problème est la variable PGDATA définie dans le fichier personnalisé /etc/systemd/system/postgresql-9.3.service qui devrait être créé à partir du contenu de /usr/lib/systemd/system/postgresql-9.3.service qui utilise la variable PGDATA par défaut.


Linux
  1. Firewalld ne parvient pas à démarrer sur CentOS 8 avec une DBusException

  2. Comment travailler avec le gestionnaire de fichiers CentOS Web Panel

  3. Autorisations de fichiers sous Linux avec exemple

  4. Avertissement avec nftw

  5. Conserver les autorisations de fichiers avec Git

Commande Linux WC avec exemples

Signatures numériques avec GnuPG

Gestion des cgroups avec systemd

Premiers pas avec systemctl

Comment installer PostgreSQL avec pgAdmin sur CentOS 8

Centos 7 :Prise en main