Bh komut dosyasında postgresql kullanıcı parolası nasıl ayarlanır


12

Varsayılan Postgresql sunucusu kullanıcısı için bir şifre ayarlamak istiyorum postgres. Bunu kullanarak yaptım:

sudo -u postgres psql
# \password postgres

Bu adımı birçok makinede yapmak istiyorum, bu yüzden bashaynı şeyi yapmak için bir komut dosyası oluşturmak istiyorum . Bunu bash'da nasıl başarabilirim?


Soruyu onayladı: Sunucu Hatası ile ilgili birçok soru dokümantasyondan, kitaplardan, web sitelerinden öğrenilebilir ... Sizi aşağı indiren kişi size mankomutu kullanmayı öğretmeyecektir . Lütfen man psqlgelecekte denediğinizden emin olun .

Yanıtlar:


9

Belgelendiği gibi , --commandseçenek aracılığıyla meta komutları çalıştırabilirsiniz .

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

Tek tırnak, kabuğun ters eğik çizgiyi bir kaçış karakteri olarak görmemesini sağlar.


Teşekkürler, ben sadece aynı, ama küçük bir farkla: sudo -u postgres psql --command "\password". Merak ediyorum, sorum neden reddedildi.
saji89

@ saji89: Bu benim downvote değil, ama sanırım çünkü bu belgeleri okuyarak kolayca öğrenilebilir.
Sven

@ saji89 Çift tırnak kullandığınızda, kabuk ters eğik çizgiyi bir kaçış karakteri, yani bir sonraki karakteri özel bir karakterden ziyade değişmez olarak ele alma talimatı olarak görür. Çift qoutes içinde gerçek bir ters eğik çizgi elde etmek için kullanmanız gerekir "\\...".
Ansgar Wiechers

@AnsgarWiechers, Bu düzeltme için teşekkürler. Ama komik olan kısım, bu çizginin benim için çalışması. Gnu.org/software/bash/manual/html_node/Double-Quotes.html adresinde okuduğum kadarıyla : The backslash retains its special meaning only when followed by one of the following characters: ‘$’, ‘`’, ‘"’, ‘\’, or newline.Bence bu yüzden "\password"iyi çalıştı.
saji89

22

\passwordEtkileşimli bir terminal bekleyen psql komutunu kullanmak yerine şunları kullanabilirsiniz:

ALTER USER postgres WITH PASSWORD 'newpassword';

Diyelim ki bir psql -ckomutla:

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

WITH, SET değil (15 karakter)
ChocoDeveloper
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.