PostgreSQL को कॉन्फ़िगरेशन परिवर्तन के बाद पुनः लोड करना


16

मैंने pg_hba.conf में कुछ बदलाव किए हैं और मैं चाहता हूं कि वे प्रभावित हों। मुझे कई जगह मिली हैं जहाँ लोग कहते हैं कि मैं पोस्टग्रेसीएल को पुनः लोड करने के लिए कह सकता हूं, लेकिन कई अलग-अलग तकनीकें सूचीबद्ध हैं, और उनमें से कोई भी मेरे लिए अभी तक काम नहीं करता है।

सबसे आधिकारिक संदर्भ जो मैंने पाया है वह pg_ctl कमांड के लिए है, लेकिन मुझे यकीन नहीं है कि मेरा PGDATA फ़ोल्डर कहां है। मैं देखता रहूंगा।

मैं Ubuntu 8.10 पर PostgreSQL 8.3 चला रहा हूं।

जवाबों:


15

आप देख सकते हैं कि आपका PGDATA pg से कनेक्ट करके और कमांड जारी करके कहां है:

show data_directory;

उबंटू पर, यह आमतौर पर है /var/lib/postgresql/8.3/main/

इसके अलावा, आप कर सकते हैं: /etc/init.d/postgresql-8.3 reload


17

हालांकि मूल व्यक्ति प्रश्न पूछ रहा है कि वह उबंटू 8.10 कई लोगों को चला रहा है, उबंटू के बाद के संस्करणों का उपयोग करके यहां भी ठोकर खा सकता है। और यह वास्तव में 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'

पुनश्च यह उबंटू प्रलेखन में सुझाव दिया गया है कि इस नई विधि से संबंधित कुछ तरीका वहाँ 6.10 की रिलीज़ के साथ किया गया था, हालांकि अगर मैंने इसे सही ढंग से समझा है तो इसे 9.10 तक अधिक सामान्य उपयोग में नहीं लिया गया था।


मैंने पिछले दो वर्षों में अपग्रेड किया है, इसलिए मैं इसका प्रयास करूंगा। मुझे ठंडा रखने के लिए धन्यवाद।
डॉन किर्कबी

आम तौर पर su -बस के स्थान पर उपयोग करना बेहतर होता हैsu
x-yuri

5

विकल्प 1: कमांड-लाइन शेल से

su - postgres
/usr/bin/pg_ctl reload

विकल्प 2: एसक्यूएल का उपयोग करना

SELECT pg_reload_conf();

किसी भी विकल्प का उपयोग करने से डेटाबेस में कोई भी सक्रिय प्रश्न या कनेक्शन बाधित नहीं होगा, इस प्रकार ये परिवर्तन लागू नहीं होंगे।



2

यदि आप सर्वर को पुनः आरंभ नहीं करना चाहते हैं और सिर्फ पोस्टग्रेएसक्यूएल को एक संकेत भेजते हैं, तो केवल कमांड टाइप करें:
pg_ctl reload


1

मुझे आखिरकार एक तकनीक मिली जो इस लेख से मेरे लिए काम करती है । आदेश है:

sudo invoke-rc.d postgresql-8.3 reload

मैं अभी भी सिफारिश की तकनीक पर प्रतिक्रिया की सराहना करता हूं।


1
यदि आप पैकेज स्क्रिप्ट का उपयोग करके पैकेज्ड पोस्टग्रैसक्यू का उपयोग कर रहे हैं - जैसे कि यह उदाहरण उबंटू के लिए है - तो अनुशंसित तकनीक होगी। यदि आपने स्रोत से निर्माण किया है, तो pg_ctl का उपयोग करें।
मैग्नस हैगेंडर



-1

ls /etc/init.d/ देखो क्या वहाँ postgresql देखते हैं?

sudo /etc/init.d/postgresql पुनः लोड करें

/etc/init.d/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.