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.

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


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.


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.


3

Esto hará el truco:

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

2

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


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.


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

0

En una linea:

su -c "pg_ctl reload" - postgres

-1

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

sudo /etc/init.d/postgresql reload

/etc/init.d/

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.