PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Script Bash per installare PostgreSQL - Non funzionante

La parte che è chiaramente sbagliata nel tuo script è che si aspetta le righe che seguono su - postgres da eseguire come utente postgres. Questo non accadrà.

In modalità batch, su - postgres si avvia ed esce immediatamente perché non gli viene inviato alcun comando. Quindi i comandi successivi degli script vengono eseguiti mentre l'utente avvia lo script (presumibilmente root) e falliscono.

Invece, dovresti scrivere qualcosa del genere:

su - postgres <<-'EOF'
  /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
  /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
  /usr/local/pgsql/bin/createdb test
EOF
# the lines after the EOF will be executed again as the initial user

I suggerimenti nei commenti presuppongono che tu abbia installato postgresql tramite un pacchetto, ma non è questo il contesto della domanda. Quando installi dal sorgente con ./configure senza argomenti e make install , non installerà mai nulla al di fuori di /usr/local/pgsql . È perfettamente normale non avere uno script di avvio in /etc in questo contesto.