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.

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


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.


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.


3

Ini akan melakukan trik:

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

2

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


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.


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

0

Dalam satu baris:

su -c "pg_ctl reload" - postgres

-1

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

sudo /etc/init.d/postgresql memuat ulang

/etc/init.d/

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.