Manual de instalación de PostgreSQL

¿Que es PostgreSQL?

PostgreSQL es un potente sistema gestor de bases de datos SQL.

¿Que necesitas saber?
  • Linux
¿Que vas a aprender?

Vas a aprender a instalar un sistema gestor de bases de datos SQL. Lo vas a instalar desde cero en una maquina limpia, es decir sin ningun tipo de configuración adicional, solo con la configuración estandar del Sistema operativo Debian 9

¿Comenzamos?

Para instalar PostgreSQL en Debian 9, necesitaremos conectarnos por SSH con el servidor, en nuestro caso usaremos Putty, un cliente SSH para Windows que puedes descargar aqui

En nuestor caso vamos a usar la cuenta de administrador del sistema 'root' si no dispones de la cuenta root deberas ejecutar cada comando precedido de la palabra sudo. Ej: sudo apt-get update

Instalación de PostgreSQL y creación de usuario y BBDD
  1. Lo primero actualizaremos el sistema con los siguientes comandos
    $ apt-get update
    $ apt-get upgrade
  2. Instalamos el sistema gestor de bases de datos PostgreSQL con el siguiente comando
    $ apt-get install postgresql
  3. Instalamos el paquete de extensiones contrib de PostgreSQL con el siguiente comando
    $ apt-get install postgresql-contrib
  4. Creación de una contraseña para el usuario de linux 'postgres'
    $ passwd postgres
  5. Creación de una contraseña para el usuario de postgresql 'postgres'
    $ su - postgres
    $ psql
    # ALTER USER postgres WITH PASSWORD 'ContraseñaAqui';
  6. Creación de un usuario para la BBDD
    $ su - postgres
    $ createuser --pwprompt --interactive bitschool
  7. Creación de una BBDD con el usuario bitschool
    $ su - postgres
    $ createdb -O bitschool bitschool.es

    bitschool.es es el nombre de la base de datos creada

  8. Creación de la extension pgcrypto para las funciones de cifrado de contraseñas de los usuarios
    $ su - postgres
    $ psql -d bitschool.es
    bitschool.es=# CREATE SCHEMA IF NOT EXISTS crypt;
    bitschool.es=# CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA crypt;
Configuración de PostgreSQL para aceptar conexiones remotas con usuario y contraseña

Por defecto PostgreSQL viene configurado para no aceptar conexiones remotas, sin embargo nuestro sistema necesitará conectar con la base de datos desde otros sitemas a traves de internet.

Para configurar el acceso remoto debemos editar algunas lineas de los archivos de configuración de PostgreSQL, en nuestro caso hemos instalado la versión 9.6 sobre un sistema operativo Debian 9 y los archivos de configuración se encuentran en la siguiente ruta: /etc/postgresql/9.6/main/

  1. Lo primero editamos el archivo de configuración general: /etc/postgresql/9.6/main/postgresql.conf

    Buscamos la linea:

    #listen_addresses = 'localhost'
    y la sustituimos por:
    listen_addresses = '*'
    Con ello hemos quitado el comentario '#' y le decimos al sistema que acepte conexiones desde todas las direcciones IP con el '*'

  2. Configuración del archivo de autenticación

    Buscamos la linea:

    host    all             all             127.0.0.1/32            md5
    y la sustituimos por:
    host    all             all             0.0.0.0/0            md5

  3. Reinicio del sistema PostgreSQL
    $ service postgresql restart
  4. Comprobar la conexión remota

    Podemos comprobar la conexión remota con un cliente PostgreSQL, como por ejemplo pgAdmin 4 que es gratuito y se puede descargar aqui

    Una vez descargado e instalado debemos ejecutarlo y configurar una conexión con nuestro servidor:

    A continuación introducimos los datos de nuestro servidor, base de datos, usuario y contraseña

    Si todo va bien y conecta correctamente habremos terminado la instalación correctamente

    ¡Enhorabuena!