Recarregando o PostgreSQL após alterações na configuração

16

Fiz algumas alterações no pg_hba.conf e quero que elas tenham efeito. Eu encontrei vários lugares onde as pessoas dizem que posso dizer ao PostgreSQL para recarregar, mas existem várias técnicas diferentes listadas e nenhuma delas funciona para mim ainda.

A referência mais autoritária que encontrei é para o comando pg_ctl, mas não sei onde está minha pasta PGDATA. Eu continuarei procurando.

Estou executando o PostgreSQL 8.3 no Ubuntu 8.10.

Don Kirkby
fonte

Respostas:

15

Você pode verificar onde está o seu PGDATA conectando-se à pg e emitindo o comando:

show data_directory;

No ubuntu, geralmente é /var/lib/postgresql/8.3/main/.

Além disso, você pode: /etc/init.d/postgresql-8.3 reload


fonte
17

Embora a pessoa original que fez a pergunta implique que ele está executando o Ubuntu 8.10 muitas pessoas, o uso de versões posteriores do Ubuntu pode tropeçar aqui também. E isso também pode funcionar com a 8.10. Não sei, não tenho nenhuma instalação 8.10 para testar ..

Ok, vamos direto ao ponto. Portanto, a maneira "nova" legal de controlar serviços é usar o servicecomando Assim, você pode recarregar as configurações com o seguinte comando:

service postgresql-8.3 reload

naturalmente, você precisa ter os direitos adequados por isso é mais provável necessário para preceder o comando com algo parecido sudoou su -c rootmenos assim:

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

PS É sugerido na documentação do Ubuntu que algo relacionado a esse novo método havia sido feito lá atrás com o lançamento da 6.10, no entanto, se eu entendi corretamente, não havia sido usado em uso mais geral até a 9.10.

Timo
fonte
Eu atualizei nos últimos dois anos, então vou tentar isso. Obrigado por me manter calmo.
Don Kirkby
Em geral, é melhor usar su -no lugar de apenassu
x-yuri
5

Opção 1: No shell da linha de comandos

su - postgres
/usr/bin/pg_ctl reload

Opção 2: Usando SQL

SELECT pg_reload_conf();

O uso de qualquer uma das opções não interromperá nenhuma consulta ou conexão ativa com o banco de dados, aplicando essas alterações aparentemente.

Michael Horojanski
fonte
3

Isto irá fazer o truque:

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

Se você não deseja reiniciar o servidor e apenas enviar um sinal para o postgreSQL, digite o comando:
pg_ctl reload

omu
fonte
1

Finalmente encontrei uma técnica que funciona para mim neste artigo . O comando é:

sudo invoke-rc.d postgresql-8.3 reload

Eu ainda gostaria de receber feedback sobre qual é a técnica recomendada.

Don Kirkby
fonte
11
Se você estiver usando o PostgreSQL empacotado, usar o script do pacote - como este exemplo tem para o Ubuntu - seria a técnica recomendada. Se você criou a partir da fonte, use pg_ctl.
Magnus Hagander 02/09/09
1

O seguinte deve fazer isso por você:

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

Em uma linha:

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

ls /etc/init.d/ Veja o que há, veja o postgresql?

sudo /etc/init.d/postgresql reload

/etc/init.d/

Scott
fonte