Reload PostgreSQL setelah perubahan konfigurasi

16

Saya telah membuat beberapa perubahan pada pg_hba.conf dan saya ingin mereka memberi pengaruh. Saya telah menemukan beberapa tempat di mana orang mengatakan bahwa saya dapat memberi tahu PostgreSQL untuk memuat ulang, tetapi ada beberapa teknik berbeda yang terdaftar, dan belum ada yang bekerja untuk saya.

Referensi paling otoritatif yang saya temukan adalah untuk perintah pg_ctl, tapi saya tidak yakin di mana folder PGDATA saya. Saya akan terus mencari.

Saya menjalankan PostgreSQL 8.3 di Ubuntu 8.10.

Don Kirkby
sumber

Jawaban:

15

Anda dapat memeriksa di mana PGDATA Anda dengan menghubungkan ke pg, dan mengeluarkan perintah:

show data_directory;

Di ubuntu, biasanya /var/lib/postgresql/8.3/main/.

Anda juga dapat: /etc/init.d/postgresql-8.3 reload


sumber
17

Meskipun orang asli yang mengajukan pertanyaan menyiratkan bahwa dia menjalankan Ubuntu 8.10 banyak orang, menggunakan versi Ubuntu yang lebih baru mungkin juga tersandung di sini. Dan ini mungkin sebenarnya bekerja dengan 8.10 juga. Saya tidak tahu, saya tidak punya 8,10 instalasi untuk mencobanya dengan ..

Ok, mari kita potong to the point. Jadi cara "baru" yang keren untuk mengendalikan layanan adalah dengan menggunakan serviceperintah. Jadi, Anda dapat memuat ulang konfigurasi dengan perintah berikut:

service postgresql-8.3 reload

tentu saja Anda perlu memiliki hak yang tepat sehingga kemungkinan besar diperlukan untuk mengawali perintah dengan sesuatu seperti sudoatau su -c rootseperti ini:

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

PS Disarankan dalam dokumentasi Ubuntu bahwa sesuatu yang berkaitan dengan metode baru ini telah dilakukan di sana dengan rilis 6.10, namun jika saya memahaminya dengan benar, ia belum digunakan secara umum sampai jam 9.10.

Timo
sumber
Saya telah meningkatkan dalam dua tahun terakhir, jadi saya akan mencoba ini. Terima kasih telah membuat saya tetap tenang.
Don Kirkby
Secara umum lebih baik digunakan su -sebagai penggantisu
x-yuri
5

Opsi 1: Dari shell baris perintah

su - postgres
/usr/bin/pg_ctl reload

Opsi 2: Menggunakan SQL

SELECT pg_reload_conf();

Menggunakan salah satu opsi tidak akan mengganggu permintaan atau koneksi aktif ke database, sehingga menerapkan perubahan ini tanpa terlihat.

Michael Horojanski
sumber
3

Ini akan melakukan trik:

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

Jika Anda tidak ingin me-restart server dan hanya mengirim sinyal ke postgreSQL, cukup ketik perintah:
pg_ctl reload

omu
sumber
1

Saya akhirnya menemukan teknik yang bekerja untuk saya dari artikel ini . Perintahnya adalah:

sudo invoke-rc.d postgresql-8.3 reload

Saya masih menghargai umpan balik tentang apa teknik yang direkomendasikan.

Don Kirkby
sumber
1
Jika Anda menggunakan PostgreSQL paket, menggunakan skrip paket - seperti contoh ini untuk Ubuntu - akan menjadi teknik yang direkomendasikan. Jika Anda membangun dari sumber, gunakan pg_ctl.
Magnus Hagander
1

Yang berikut harus dilakukan untuk Anda:

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

Dalam satu baris:

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

ls /etc/init.d/ Lihat apa yang ada di sana lihat postgresql?

sudo /etc/init.d/postgresql memuat ulang

/etc/init.d/

scott
sumber