Rechargement de PostgreSQL après des changements de configuration


16

J'ai apporté quelques modifications à pg_hba.conf et je veux qu'elles prennent effet. J'ai trouvé plusieurs endroits où les gens disent que je peux dire à PostgreSQL de se recharger, mais il existe plusieurs techniques différentes répertoriées, et aucune ne fonctionne pour moi pour le moment.

La référence la plus fiable que j'ai trouvée concerne la commande pg_ctl, mais je ne sais pas où se trouve mon dossier PGDATA. Je continuerai de chercher.

J'exécute PostgreSQL 8.3 sur Ubuntu 8.10.

Réponses:


15

Vous pouvez vérifier où se trouve votre PGDATA en vous connectant à pg et en émettant la commande:

show data_directory;

Sur Ubuntu, c'est généralement /var/lib/postgresql/8.3/main/.

Vous pouvez également: /etc/init.d/postgresql-8.3 reload


17

Bien que la personne d'origine posant la question ait laissé entendre qu'il utilise Ubuntu 8.10, beaucoup de personnes, en utilisant des versions ultérieures d'Ubuntu, pourraient également trébucher ici. Et cela pourrait aussi fonctionner avec 8.10. Je ne sais pas, je n'ai aucune installation 8.10 pour l'essayer ..

Ok, allons droit au but. La "nouvelle" façon de contrôler les services est donc d'utiliser la servicecommande. Vous pouvez donc recharger les configurations avec la commande suivante:

service postgresql-8.3 reload

Naturellement, vous devez avoir les droits appropriés, il est donc très probablement nécessaire d'ajouter la commande à quelque chose comme sudoou su -c rootcomme ceci:

sudo service postgresql-8.3 reload
ou
su -c root 'service postgresql-8.3 reload'

PS Il est suggéré dans la documentation Ubuntu que quelque chose concernant cette nouvelle méthode avait été fait il y a longtemps avec la sortie de 6.10, mais si je l'ai bien compris, il n'a pas été utilisé de manière plus générale avant 9.10.


J'ai effectué une mise à niveau au cours des deux dernières années, je vais donc essayer cela. Merci de me garder au frais.
Don Kirkby

Il est généralement préférable d'utiliser su -à la place de justesu
x-yuri

5

Option 1: à partir du shell de ligne de commande

su - postgres
/usr/bin/pg_ctl reload

Option 2: utilisation de SQL

SELECT pg_reload_conf();

L'utilisation de l'une ou l'autre de ces options n'interrompt aucune requête ou connexion active à la base de données, appliquant ainsi ces changements de manière apparente.


3

Ça fera l'affaire:

kill -HUP $(head -1 $PGDATA/postmaster.pid)

2

Si vous ne voulez pas redémarrer le serveur et envoyer simplement un signal à postgreSQL, tapez simplement la commande:
pg_ctl reload


1

J'ai finalement trouvé une technique qui fonctionne pour moi à partir de cet article . La commande est:

sudo invoke-rc.d postgresql-8.3 reload

J'apprécierais toujours vos commentaires sur la technique recommandée.


1
Si vous utilisez PostgreSQL empaqueté, l'utilisation du script de package - comme cet exemple pour Ubuntu - serait la technique recommandée. Si vous avez construit à partir des sources, utilisez pg_ctl.
Magnus Hagander

1

Ce qui suit devrait le faire pour vous:

sudo /etc/init.d/postgresql-8.3 reload

0

En une seule ligne:

su -c "pg_ctl reload" - postgres

-1

ls /etc/init.d/ Regardez ce qu'il y a voir postgresql?

sudo /etc/init.d/postgresql reload

/etc/init.d/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.