Cómo instalar PostgreSQL en Debian 8 Jessie

En esta entrada vamos a ver cómo instalar PostgreSQL en Debian 8 Jessie paso a paso, de modo que podrás trabajar con las últimas versiones estables de este servicio de bases de datos en tu viejo servidor o VPS Debian.

NOTA: Debian 8 Jessie alcanzó el fin de su ciclo de vida, por lo que PostgreSQL también dejó de actualizar su repositorio para esta distribución. En este tutorial explicamos cómo instalar la versión nativa de la distribución o versiones más modernas (hasta la 12) desde el archivo de PostgreSQL. En este sitio web puedes encontrar artículos similares a este para las versiones con soporte de Debian.

Antes de instalar PostgreSQL en Debian 8 Jessie

Para poder seguir los pasos de esta guía de instalación de PostgreSQL en Debian 8 Jessie sólo será necesario partir de los siguientes requisitos:

  • Una instalación actualizada de Debian 8 Jessie.
  • Acceso a línea de comandos con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Es importante destacar que PostgreSQL ya no ofrece soporte para Debian 8 Jessie, por lo que utilizaremos el repositorio archivado para obtener la última versión estable que se lanzó para este sistema.

Cómo instalar PostgreSQL en Debian 8 Jessie

Vamos a instalar PostgreSQL en Debian 8 desde el repositorio oficial de este servicio de bases de datos, ya que la versión incluida en los repositorios de la distribución, PostgreSQL 9.4, puede considerarse bastante obsoleta.

Repositorio de PostgreSQL para Debian 8 Jessie

Para configurar el repositorio de PostgreSQL en Debian 8 crearemos un nuevo archivo de repositorio de apt:

~$ sudo nano /etc/apt/sources.list.d/postgresql.list

El contenido será la siguiente línea:

deb http://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main

Guardamos los cambios y cerramos el archivo.

Añadimos la clave pública con la que se firman los paquetes del repositorio:

~$ wget --quiet -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Y actualizamos las listas de paquetes:

~$ sudo apt update

Instalar PostgreSQL en Debian 8

Al instalar PostgreSQL en Debian 8 desde el repositorio oficial debemos saber que disponemos de las versiones 8.4, 9.0, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 10, 11 y 12. En esta guía instalaremos la última versión estable disponible, la 12:

~$ sudo apt install -y postgresql-12 dbus

En unos instantes se descargarán e instalarán PostgreSQL y sus dependencias, así como el servicio D-Bus, creándose en Debian 8 un nuevo servicio llamado postgresql.service (o postgresql si prefieres la versión corta). El servicio PostgreSQL queda en ejecución y habilitado para iniciar automáticamente junto a Debian 8.

Podemos comprobar en cualquier momento el estado del servicio con el comando systemctl status postgresql:

como instalar postgresql en debian 8 jessie

Cómo conectar a PostgreSQL en Debian 8

Podemos conectar a PostgreSQL en Debian 8 desde consola utilizando el cliente psql, que se incluye como dependencia del servicio, utilizando el usuario postgres que, por el momento, es el único que puede realizar la conexión:

~$ sudo -u postgres psql
psql (12.3 (Debian 12.3-1.pgdg80+1))
Digite «help» para obtener ayuda.

postgres=#

Además de realizar la conexión, observamos la versión de PostgreSQL instalada.

Para cerrar la sesión usaremos el comando exit:

postgres=# exit
~$

Cómo crear tu propio rol para PostgreSQL

Si no quieres tener que usar sudo y el usuario postgres para trabajar con el servicio, puedes crear tu propio rol administrador con el comando createdb. Aun así, todavía tendremos que usar a postgres para esta tarea:

~$ sudo -u postgres createuser --interactive
Ingrese el nombre del rol a agregar: chacho
¿Será el nuevo rol un superusuario? (s/n) s
~$

Lanzamos el comando de forma interactiva para que nos pregunte el nombre del rol que queremos crear y si se va a tratar de un usuario administrador. El nombre del rol debería coincidir con el del usuario de Debian 8, para que este pueda conectar directamente al servicio.

Sólo falta crear una base de datos con el mismo nombre que el rol que acabamos de crear, ya que cada rol debe tener asociada una base de datos. Esta tarea ya sí la podemos realizar con nuestro usuario de trabajo (sin usar sudo con postgres):

~$ createdb chacho -O chacho

Ahora tenemos todo lo necesario: un usuario de Debian 8, un rol y una base de datos, todos con el mismo nombre. Por tanto ya podemos conectar a PostgreSQL con nuestro usuario de Debian 8:

~$ psql
psql (12.3 (Debian 12.3-1.pgdg80+1))
Digite «help» para obtener ayuda.

chacho=#

Trabajar con contraseñas

Podemos crear contraseñas de usuario con nuestro rol administrador, tanto para nosotros:

chacho=# \password
Ingrese la nueva contraseña:
Ingrésela nuevamente:
chacho=#

Como para otros roles:

chacho=# \password paco
Ingrese la nueva contraseña:
Ingrésela nuevamente:
chacho=#

Cómo configurar PostgreSQL en Debian 8 Jessie

Vamos a configurar PostgreSQL en Debian 8, teniendo en cuenta que los archivos de configuración se encuentran organizados en la ruta /etc/postgresql.

Aunque ya hemos creado las contraseñas, la configuración por defecto de PostgreSQL no las utiliza en conexiones locales. Puede que te interese cambiar este comportamiento para casos como usar una aplicación web, un frontend, etc. Para ello editamos el archivo pg_hba.conf:

~$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Buscaremos esta línea:

local   all             all                                     peer

Y cambiaremos peer por md5:

local   all             all                                     md5

Guardamos los cambios y recargamos la configuración del servicio:

~$ sudo systemctl reload postgresql

Comprobaremos el funcionamiento conectando de nuevo con psql:

~$ psql
Contraseña para usuario chacho:
psql (12.3 (Debian 12.3-1.pgdg80+1))
Digite «help» para obtener ayuda.

chacho=#

Ahora se nos pide contraseña para iniciar la sesión.

Acceso remoto

Por defecto el servicio PostgreSQL en Debian 8 Jessie sólo escucha conexiones locales. Para permitir el acceso remoto tendremos que realizar algún ajuste en el archivo postgresql.conf:

~$ sudo nano /etc/postgresql/12/main/postgresql.conf

Buscaremos la directiva listen_addresses:

...
#listen_addresses = 'localhost'         # what IP address(es) to listen on;
...

Comprobamos que la directiva está desactivada, así que la activaremos eliminando el carácter # al inicio de línea y cambiaremos el valor localhost por *:

...
listen_addresses = '*'          # what IP address(es) to listen on;
...

Guardamos y cerramos este archivo y editamos el archivo pg_hba.conf:

~$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Buscamos las directivas host para IPv4 e IPv6 y justo a continuación de ellas añadimos una más como la siguiente:

...
host    all             all             all                     md5
...

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart postgresql

Configurar el firewall UFW para PostgreSQL en Debian 8

Si tienes activado el firewall UFW en Debian 8, deberías añadir una regla para permitir las conexiones desde la red:

~$ sudo ufw allow 5432/tcp

Probando la conexión remota

Desde otro sistema en red ya podemos conectar al servicio PostgreSQL en la máquina Debian 8, utilizando un cliente como psql. Con el parámetro -h indicamos la dirección del servidor debian8.local.lan y con -U el rol con el que queremos conectar:

~$ psql -h debian8.local.lan -U chacho

instalar y configurar postgresql en debian 8 jessie

Conclusión

Ahora que sabes cómo instalar PostgreSQL en Debian 8 Jessie ya puedes usar las versiones más recientes de este servicio para tus propios desarrollos o como base para potentes aplicaciones que lo necesiten.

En caso de que te hayan surgido preguntas, dudas, alguna sugerencia de mejora del tutorial, quieras notificar algún error, etc. puedes dejar un comentario apropiado.

Y si has conseguido hacer funcionar el servicio de bases de datos gracias a esta pequeña guía y quieres agradecérnoslo, puedes ayudarnos dejando una propina de 1 $ con PayPal:

¡Gracias!

5/5 - (2 votos)

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.