sql >> Base de Datos >  >> RDS >> PostgreSQL

Bash Script para instalar PostgreSQL - No funciona

La parte que claramente está mal en su secuencia de comandos es que espera las líneas que siguen a su - postgres para ser ejecutado como el usuario de postgres. Esto no sucederá.

En modo por lotes, su - postgres se inicia e inmediatamente sale porque no se le envía ningún comando. Luego, los siguientes comandos de los scripts se ejecutan cuando el usuario inicia el script (presumiblemente root) y fallan.

En su lugar, deberías escribir algo como esto:

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

Las sugerencias en los comentarios asumen que ha instalado postgresql a través de un paquete, pero ese no es el contexto de la pregunta. Cuando instala desde la fuente con ./configure sin argumentos y make install , nunca instalará nada fuera de /usr/local/pgsql . Es perfectamente normal no tener un script de inicio en /etc en este contexto.