Bash script में postgresql यूजर पासवर्ड कैसे सेट करें


12

मैं, डिफ़ॉल्ट PostgreSQL सर्वर उपयोगकर्ता के लिए पासवर्ड सेट करना चाहते हैं postgres। मैंने इसका उपयोग करके किया:

sudo -u postgres psql
# \password postgres

मैं यह कदम कई मशीनों में करना चाहता हूं, इसलिए मैं ऐसा करने के लिए एक bashस्क्रिप्ट बनाना चाहूंगा । कैसे इस को हरा में पूरा करने के लिए?


अपविटेड प्रश्न: सर्वर फाल्ट पर कई प्रश्न प्रलेखन, पुस्तकों, वेबसाइटों से सीखे जा सकते हैं ... जिस व्यक्ति ने आपको नीचा दिखाया है वह आपको manकमांड का उपयोग करना नहीं सिखाएगा । कृपया man psqlभविष्य में प्रयास करना सुनिश्चित करें ।

जवाबों:


9

दस्तावेज के रूप में आप --commandविकल्प के माध्यम से मेटा-कमांड चला सकते हैं ।

sudo -u postgres psql --command '\password postgres'

सिंगल कोट्स यह सुनिश्चित करते हैं कि शेल बैकस्लैश को एस्केप-कैरेक्टर नहीं मानता।


धन्यवाद, मैंने बस वही किया, लेकिन एक मामूली अंतर के साथ sudo -u postgres psql --command "\password":। आश्चर्य है, मेरे सवाल को क्यों नकार दिया गया।
साजी 89

@ saji89: यह मेरा पतन नहीं है, लेकिन मुझे लगता है क्योंकि यह आसानी से प्रलेखन को पढ़कर सीखा जा सकता है।
स्वेन

@ saji89 जब आप दोहरे उद्धरण चिह्नों का उपयोग करते हैं, तो शेल बैकस्लैश को एक भागने-चरित्र के रूप में व्यवहार करता है, अर्थात अगले चरित्र को एक विशेष चरित्र के बजाय एक शाब्दिक के रूप में व्यवहार करने के निर्देश के रूप में। दोहरी qoutes के अंदर शाब्दिक बैकस्लैश प्राप्त करने के लिए आपको उपयोग करना होगा "\\..."
अंसार विएचेर्स

@AnsgarWiechers, उस सुधार के लिए धन्यवाद। लेकिन मजेदार बात यह है कि वह लाइन मेरे लिए काम कर रही है। जो कुछ मैंने gnu.org/software/bash/manual/html_node/Double-Quotes.html पर पढ़ा है, वह कहता है: The backslash retains its special meaning only when followed by one of the following characters: ‘$’, ‘`’, ‘"’, ‘\’, or newline.मुझे लगता है कि "\password"ठीक काम किया है।
साजी 89

22

Psql \passwordकमांड का उपयोग करने के बजाय , जो एक इंटरैक्टिव टर्मिनल की अपेक्षा करता है, आप इसका उपयोग कर सकते हैं:

ALTER USER postgres WITH PASSWORD 'newpassword';

एक psql -cकमांड के माध्यम से कहें :

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'newpassword';"

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