web-dev-qa-db-fra.com

Comment redémarrer le serveur PostgreSQL sous CentOS 7

J'ai installé PostgreSQL 10.1 sous un environnement CentOS 7.3.

Le service est démarré (postmaster.pid fichier présent sous /var/lib/pgsql/10/data), mais je dois recharger la configuration ou redémarrer le serveur suite à une modification de pg_hba.conf.

Cependant, en essayant différentes commandes, j'obtiens ce qui suit:

pg_ctl reload -D /var/lib/pgsql/10/data
bash: pg_ctl: command not found

service postgresql reload
Redirecting to /bin/systemctl reload postgresql.service
Failed to reload postgresql.service: Unit not found.
14
Sébastien Clément

J'ai découvert que vous devez spécifier le nom exact pour le service PostgreSQL, que vous pouvez trouver sous la liste des services, en utilisant systemctl (voir aussi post ):

systemctl list-units|grep postgresql
postgresql-10.service                                                                     loaded active running   PostgreSQL 10 database server

Ensuite, vous pouvez utiliser service:

service postgresql-10.service reload

ou

service postgresql-10.service restart

Vous pouvez également utiliser la commande systemctl:

/bin/systemctl reload postgresql-10.service

ou

/bin/systemctl restart postgresql-10.service
26
Sébastien Clément

Si vous avez sudogoer comme rôle dans postgresql, vous pouvez également utiliser:

Sudo systemctl restart postgresql
5
usr
$ Sudo systemctl restart postgresql-10

Ou mieux:

$ /usr/pgsql-10/bin/pg_ctl reload

Ou d'abord (une fois):

    $ Sudo ln -s /usr/pgsql-10/bin/pg_ctl /usr/bin/pg_ctl

puis (à chaque fois):

    $ pg_ctl reload

Remarque: pg_ctl ne peut pas être exécuté en tant que root.

1
Mir-Ismaili

Vous pouvez également utiliser (PostgresQL 11 fonctionnant sur MX Linux (Debian 9, Stretch)) -

/etc/init.d/postgresql status

/etc/init.d/postgresql stop

/etc/init.d/postgresql restart
0
Lucky

Je ne sais pas comment votre fichier de service est configuré, je ne peux donc pas déboguer votre commande systemd. Il est possible qu'il porte un nom différent, comme le suggère Sébastien.

Quant à pg_ctl, c'est le résultat de l'installation qui n'ajoute pas le répertoire au chemin. (Il y a des raisons pour cela mentionnées dans les commentaires ici ). Il existe plusieurs façons de résoudre le problème, mais je recommande simplement d'ajouter /usr/pgsql-x.x/bin vers le chemin de l'utilisateur postgres. Ajoutez simplement PATH=$PATH:/usr/pgsql-x.x/bin à l'utilisateur de postgres .bash_profile et vous devriez être prêt à partir.

0
medley56

Assure-toi /sbin fait partie de votre chemin si vous exécutez les commandes service et systemctl.

0
Cheryl Grant