Recarga de PostgreSQL después de cambios de configuración

16

He realizado algunos cambios en pg_hba.conf y quiero que tengan efecto. He encontrado varios lugares donde la gente dice que puedo decirle a PostgreSQL que vuelva a cargar, pero hay varias técnicas diferentes enumeradas, y ninguna de ellas funciona para mí todavía.

La referencia más autoritativa que he encontrado es para el comando pg_ctl, pero no estoy seguro de dónde está mi carpeta PGDATA. Seguiré buscando

Estoy ejecutando PostgreSQL 8.3 en Ubuntu 8.10.

Don Kirkby
fuente

Respuestas:

15

Puede verificar dónde está su PGDATA conectándose a pg y emitiendo un comando:

show data_directory;

En ubuntu, suele ser /var/lib/postgresql/8.3/main/.

Tambien tu puedes: /etc/init.d/postgresql-8.3 reload


fuente
17

Aunque la persona original que hizo la pregunta implicaba que estaba ejecutando Ubuntu 8.10 para muchas personas, el uso de versiones posteriores de Ubuntu también podría tropezar aquí. Y esto de hecho podría funcionar con 8.10 también. No sé, no tengo ninguna instalación 8.10 para probarlo ...

Ok, vamos al grano. Entonces, la "nueva" forma genial de controlar los servicios es usar el servicecomando. Para que pueda recargar configuraciones con el siguiente comando:

service postgresql-8.3 reload

naturalmente, es necesario tener los derechos apropiados por lo que es más probable es necesario anteponer el comando con algo así sudoo su -c rootasí:

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

PD Se sugiere en la documentación de Ubuntu que algo relacionado con este nuevo método se había hecho allá atrás con el lanzamiento de 6.10, sin embargo, si lo he entendido correctamente, no se había tomado un uso más general hasta la 9.10.

Timo
fuente
He actualizado en los últimos dos años, así que intentaré esto. Gracias por mantenerme fresco.
Don Kirkby
En general, es mejor usarlo su -en lugar de solosu
x-yuri
5

Opción 1: desde el shell de la línea de comandos

su - postgres
/usr/bin/pg_ctl reload

Opción 2: usar SQL

SELECT pg_reload_conf();

El uso de cualquiera de las dos opciones no interrumpirá las consultas o conexiones activas a la base de datos, por lo que aplicará estos cambios de manera aparentemente irrelevante.

Michael Horojanski
fuente
3

Esto hará el truco:

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

Si no desea reiniciar el servidor y simplemente enviar una señal a postgreSQL, simplemente escriba el comando:
pg_ctl reload

omu
fuente
1

Finalmente encontré una técnica que me funciona en este artículo . El comando es:

sudo invoke-rc.d postgresql-8.3 reload

Todavía agradecería comentarios sobre cuál es la técnica recomendada.

Don Kirkby
fuente
1
Si está utilizando PostgreSQL empaquetado, usar la secuencia de comandos del paquete, como este ejemplo tiene para Ubuntu, sería la técnica recomendada. Si ha creado desde la fuente, use pg_ctl.
Magnus Hagander
1

Lo siguiente debería hacerlo por usted:

sudo /etc/init.d/postgresql-8.3 reload
Avery Payne
fuente
0

En una linea:

su -c "pg_ctl reload" - postgres
mivk
fuente
-1

ls /etc/init.d/ Mira lo que hay allí ver postgresql?

sudo /etc/init.d/postgresql reload

/etc/init.d/

Scott
fuente