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

Bash Script til at installere PostgreSQL - Virker ikke

Den del, der tydeligvis er forkert i dit script, er, at det forventer linjerne efter su - postgres skal køres som postgres-bruger. Dette vil ikke ske.

I batch-tilstand, su - postgres starter og afsluttes med det samme, fordi der ikke sendes nogen kommando til den. Derefter udføres de næste kommandoer i scriptet, mens brugeren starter scriptet (formodentlig root), og de mislykkes.

I stedet skal du skrive noget som dette:

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

Forslagene i kommentarerne forudsætter, at du har installeret postgresql via en pakke, men det er ikke konteksten for spørgsmålet. Når du installerer fra kilde med ./configure uden argumenter og make install , vil den aldrig installere noget uden for /usr/local/pgsql . Det er helt normalt at have noget opstartsscript under /etc i denne sammenhæng.




  1. Ikke i stand til at udføre sql-forespørgsel

  2. Forespørgsel efter element af array i JSON-kolonnen

  3. Vil du reservere mySQL auto-incremented ID'er?

  4. SQL opdelt kommasepareret række