Ricarica PostgreSQL dopo le modifiche alla configurazione


16

Ho apportato alcune modifiche a pg_hba.conf e voglio che abbiano effetto. Ho trovato diversi posti in cui la gente dice che posso dire a PostgreSQL di ricaricare, ma ci sono diverse tecniche elencate e nessuna di esse funziona ancora per me.

Il riferimento più autorevole che ho trovato è per il comando pg_ctl, ma non sono sicuro di dove sia la mia cartella PGDATA. Continuerò a cercare.

Sto eseguendo PostgreSQL 8.3 su Ubuntu 8.10.

Risposte:


15

Puoi controllare dove si trova il tuo PGDATA collegandoti a pg ed eseguendo il comando:

show data_directory;

Su Ubuntu, di solito è /var/lib/postgresql/8.3/main/.

Inoltre, puoi: /etc/init.d/postgresql-8.3 reload


17

Anche se la persona originale che ha posto la domanda implica che sta eseguendo Ubuntu 8.10 molte persone, l'utilizzo di versioni successive di Ubuntu potrebbe anche inciampare qui. E questo potrebbe in effetti funzionare anche con l'8.10. Non so, non ho installazioni 8.10 con cui provarlo.

Ok, andiamo al punto. Quindi il fantastico "nuovo" modo di controllare i servizi è usare il servicecomando. Quindi puoi ricaricare le configurazioni con il seguente comando:

service postgresql-8.3 reload

naturalmente è necessario disporre dei diritti appropriati, quindi è molto probabile che sia necessario anteporre il comando a qualcosa di simile sudoo su -c rootsimile a questo:

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

PS Nella documentazione di Ubuntu viene suggerito che qualcosa relativo a questo nuovo metodo era stato fatto molto tempo fa con la versione 6.10, tuttavia se l'ho capito correttamente non era stato preso in uso più generale fino alle 9.10.


Ho effettuato l'aggiornamento negli ultimi due anni, quindi lo proverò. Grazie per avermi mantenuto fresco.
Don Kirkby,

È generalmente meglio usare su -al posto di solosu
x-yuri il

5

Opzione 1: dalla shell della riga di comando

su - postgres
/usr/bin/pg_ctl reload

Opzione 2: utilizzo di SQL

SELECT pg_reload_conf();

L'uso di entrambe le opzioni non interromperà alcuna query o connessione attiva al database, applicando quindi queste modifiche in modo apparente.


3

Questo farà il trucco:

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

2

Se non vuoi riavviare il server e inviare un segnale a postgreSQL, digita command:
pg_ctl reload


1

Ho finalmente trovato una tecnica che funziona per me da questo articolo . Il comando è:

sudo invoke-rc.d postgresql-8.3 reload

Gradirei ancora feedback su quale sia la tecnica consigliata.


1
Se stai usando PostgreSQL in pacchetto, usare lo script del pacchetto - come questo esempio ha per Ubuntu - sarebbe la tecnica consigliata. Se hai creato dal sorgente, usa pg_ctl.
Magnus Hagander,

1

Quanto segue dovrebbe farlo per te:

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

0

In una riga:

su -c "pg_ctl reload" - postgres

-1

ls /etc/init.d/ Guarda cosa c'è che vedi postgresql?

sudo /etc/init.d/postgresql ricaricare

/etc/init.d/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.