โหลด PostgreSQL อีกครั้งหลังจากเปลี่ยนแปลงการกำหนดค่า


16

ฉันได้ทำการเปลี่ยนแปลง pg_hba.conf แล้วและต้องการให้มีผล ฉันพบสถานที่หลายแห่งที่ผู้คนบอกว่าฉันสามารถบอก PostgreSQL ให้โหลดใหม่ได้ แต่มีเทคนิคต่าง ๆ มากมายที่ระบุไว้และยังไม่มีใครทำงานให้ฉันได้

การอ้างอิงที่มีสิทธิ์ที่สุดที่ฉันพบคือคำสั่ง pg_ctl แต่ฉันไม่แน่ใจว่าโฟลเดอร์ PGDATA ของฉันอยู่ที่ไหน ฉันจะดูต่อไป

ฉันใช้ PostgreSQL 8.3 บน Ubuntu 8.10

คำตอบ:


15

คุณสามารถตรวจสอบว่า PGDATA ของคุณอยู่ที่ไหนโดยเชื่อมต่อกับ pg และออกคำสั่ง:

show data_directory;

บน Ubuntu ก็ปกติ/var/lib/postgresql/8.3/main/แล้ว

นอกจากนี้คุณสามารถ: /etc/init.d/postgresql-8.3 reload


17

แม้ว่าคนดั้งเดิมที่ถามคำถามโดยนัยว่าเขาใช้งาน Ubuntu 8.10 หลายคนการใช้ Ubuntu รุ่นใหม่กว่าอาจสะดุดเช่นกัน และในความเป็นจริงนี้อาจใช้กับ 8.10 ได้เช่นกัน ฉันไม่รู้ฉันไม่มีการติดตั้ง 8.10 ใดให้ลองด้วย ..

ตกลงให้ตัดไปยังจุดที่ ดังนั้นวิธีการควบคุมบริการ "ใหม่" ที่ยอดเยี่ยมคือการใช้serviceคำสั่ง ดังนั้นคุณสามารถโหลดการกำหนดค่าใหม่ด้วยคำสั่งต่อไปนี้:

service postgresql-8.3 reload

ธรรมชาติที่คุณต้องมีสิทธิ์ที่เหมาะสมจึงเป็นสิ่งที่มีแนวโน้มมากที่สุดที่จำเป็นต้องเพิ่มคำสั่งกับสิ่งที่ต้องการsudoหรือsu -c rootเช่นนี้

sudo service postgresql-8.3 reload
หรือ
su -c root 'service postgresql-8.3 reload'

ป.ล. ขอแนะนำในเอกสารประกอบของ Ubuntuว่ามีบางสิ่งที่เกี่ยวข้องกับวิธีการใหม่นี้ได้ทำไปแล้วด้วยการเปิดตัว 6.10 แต่ถ้าฉันเข้าใจอย่างถูกต้องมันก็ไม่ได้ถูกนำไปใช้ทั่วไปจนถึง 9.10


ฉันอัพเกรดในสองปีที่ผ่านมาดังนั้นฉันจะลอง ขอบคุณที่ทำให้ฉันเจ๋ง
Don Kirkby

มันเป็นโดยทั่วไปดีขึ้นกับการใช้งานsu -ในสถานที่เพียงsu
X-ยูริ

5

ตัวเลือก 1: จากเชลล์บรรทัดคำสั่ง

su - postgres
/usr/bin/pg_ctl reload

ตัวเลือกที่ 2: การใช้ SQL

SELECT pg_reload_conf();

การใช้ตัวเลือกอย่างใดอย่างหนึ่งจะไม่ขัดขวางการสืบค้นหรือการเชื่อมต่อกับฐานข้อมูลใด ๆ ดังนั้นการใช้การเปลี่ยนแปลงเหล่านี้จึงดูเหมือนจะไม่เกิดขึ้น



2

หากคุณไม่ต้องการรีสตาร์ทเซิร์ฟเวอร์และเพียงส่งสัญญาณไปยัง postgreSQL เพียงแค่พิมพ์คำสั่ง:
pg_ctl reload


1

ในที่สุดผมก็พบเทคนิคที่ทำงานสำหรับฉันจากบทความนี้ คำสั่งคือ:

sudo invoke-rc.d postgresql-8.3 reload

ฉันยังคงชื่นชมความคิดเห็นเกี่ยวกับเทคนิคที่แนะนำ


1
หากคุณใช้แพ็คเกจ PostgreSQL การใช้สคริปต์แพคเกจ - เช่นนี้มีสำหรับ Ubuntu - เป็นเทคนิคที่แนะนำ หากคุณสร้างจากแหล่งที่มาให้ใช้ pg_ctl
Magnus Hagander



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.