sql >> Database >  >> RDS >> PostgreSQL

Bash-script om PostgreSQL te installeren - Werkt niet

Het deel dat duidelijk fout is in je script is dat het de regels verwacht die volgen op de su - postgres worden uitgevoerd als de postgre-gebruiker. Dit zal niet gebeuren.

In batchmodus, su - postgres start en wordt onmiddellijk afgesloten omdat er geen commando aan wordt gegeven. Vervolgens worden de volgende opdrachten van de scripts uitgevoerd terwijl de gebruiker het script start (vermoedelijk root) en ze mislukken.

In plaats daarvan zou je zoiets als dit moeten schrijven:

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

De suggesties in de opmerkingen gaan ervan uit dat je postgresql via een pakket hebt geïnstalleerd, maar dat is niet de context van de vraag. Wanneer u vanaf de bron installeert met ./configure zonder argumenten en make install , zal het nooit iets installeren buiten /usr/local/pgsql . Het is volkomen normaal om geen opstartscript te hebben onder /etc in deze context.




  1. App om PostgreSQL-query's in realtime te volgen?

  2. hoe veilig zijn door de BOB opgestelde verklaringen?

  3. mysql selecteer tijdstempels tussen a en b retourneer alle of 0 tijdstempels

  4. Wat is het equivalent van de null-safe gelijkheidsoperator <=> in SQLite?