sql >> Databáze >  >> RDS >> PostgreSQL

Bash Script pro instalaci PostgreSQL - nefunguje

Část, která je ve vašem skriptu zjevně chybná, spočívá v tom, že očekává řádky následující za su - postgres být spuštěn jako uživatel postgres. To se nestane.

V dávkovém režimu su - postgres se spustí a okamžitě skončí, protože do něj není zadán žádný příkaz. Poté jsou provedeny další příkazy skriptů, když uživatel spouští skript (pravděpodobně root) a selžou.

Místo toho byste měli napsat něco takového:

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

Návrhy v komentářích předpokládají, že jste postgresql nainstalovali prostřednictvím balíčku, ale to není kontext otázky. Při instalaci ze zdroje pomocí ./configure bez argumentů a make install , nikdy nenainstaluje nic mimo /usr/local/pgsql . Je naprosto normální nemít spouštěcí skript pod /etc v tomto kontextu.




  1. Jak funguje SET ROWCOUNT v SQL Server

  2. Mysql vyberte a zobrazte dva sloupce

  3. Je automatické zvýšení mysql bezpečné pro použití jako ID uživatele?

  4. Jak porovnat hodnotu s hodnotou csv v mysql?