PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Skrypt Bash do instalacji PostgreSQL - nie działa

Częścią, która jest wyraźnie nieprawidłowa w twoim skrypcie, jest to, że oczekuje on linii następujących po su - postgres do uruchomienia jako użytkownik postgres. To się nie stanie.

W trybie wsadowym su - postgres uruchamia się i natychmiast wychodzi, ponieważ nie jest do niego podawane żadne polecenie. Następnie kolejne polecenia skryptów są wykonywane jako użytkownik uruchamiający skrypt (prawdopodobnie root) i kończą się niepowodzeniem.

Zamiast tego powinieneś napisać coś takiego:

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

Sugestie w komentarzach zakładają, że zainstalowałeś postgresql za pośrednictwem pakietu, ale to nie jest kontekst pytania. Kiedy instalujesz ze źródła za pomocą ./configure bez argumentów i make install , nigdy nie zainstaluje niczego poza /usr/local/pgsql . To zupełnie normalne, że nie ma skryptu startowego w /etc w tym kontekście.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Widoki PostgreSQL:odwoływanie się do jednego pola obliczeniowego w innym polu obliczeniowym

  2. Zmienne dla identyfikatorów wewnątrz IF EXISTS w funkcji plpgsql

  3. Łączenie się z PostgreSQL w IRI Workbench

  4. postgresql nextval generowanie istniejących wartości

  5. Błąd pakietu — Nie można znaleźć biblioteki klienta PostgreSQL (libpq)