Cómo instalar PostgreSQL en Debian 11 Bullseye

En esta entrada explicamos cómo instalar PostgreSQL Server en Debian 11 Bullseye paso a paso, de forma que podrás trabajar con bases de datos relacionales en tu servidor o VPS Debian gracias a este potente servicio.

Antes de instalar PostgreSQL en Debian 11 Bullseye

Si estás interesado en seguir los pasos de esta guía de instalación de PostgreSQL en Debian 11 Bullseye sólo necesitas partir de estos simples requerimientos:

  • Un sistema Debian 11 Bullseye actualizado.
  • Acceso a línea de comandos con privilegios de sudo.
  • Conexión a Internet.

Como con toda seguridad ya cumples estos requisitos, es el momento de regular la altura del escritorio y abrir tu terminal de consola favorita.

Cómo instalar PostgreSQL en Debian 11 Bullseye

Vamos a instalar PostgreSQL para Debian 11 desde los repositorios de la distribución, por tanto el primer paso es actualizarlos:

~$ sudo apt update

El paquete que necesitamos es postgresql-13, que instalamos con apt:

~$ sudo apt install -y postgresql-13

Tras la descarga e instalación de PostgreSQL y sus dependencias tenemos disponible un nuevo servicio en Debian 11, el servicio postgresql o postgresql.service, que queda directamente en ejecución y activado para su inicio automático.

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

como instalar postgresql en debian 11 bullseye

PostgreSQL queda escuchando peticiones locales exclusivamente.

Cómo instalar el cliente de PostgreSQL para Debian 11

Si sólo necesitas el cliente de consola de PostgreSQL para Debian 11, el paquete que debes instalar es postgresql-client-13:

~$ sudo apt install -y postgresql-client-13

En caso de que hayas instalado el servidor, no será necesario instalar el cliente, ya que forma parte de las dependencias.

Conexión a PostgreSQL desde consola en Debian 11

Para conectar a PostgreSQL desde consola disponemos inicialmente del rol de PostgreSQL postgres y del usuario de Debian 11 postgres. Debido al tipo de autenticación usada, trabajaremos con sudo y el usuario postgres para poder utilizar el cliente psql y otras herramientas administrativas:

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

postgres=#

Podemos cerrar la sesión con los comandos \q o exit.

Es muy probable que queramos disponer de nuestro propio rol administrador de PostgreSQL, así que crearemos un rol con el mismo nombre que nuestro usuario de trabajo de Debian 11:

~$ sudo -u postgres createuser chacho --interactive -P
Ingrese la contraseña para el nuevo rol:
Ingrésela nuevamente:
¿Será el nuevo rol un superusuario? (s/n) s

Hemos solicitado que se cree una contraseña y que se nos pregunte si deseamos que el nuevo rol sea superusuario.

Ya tenemos un rol y un usuario con los mismos nombres, así que podríamos conectar al servicio, pero como por defecto al iniciar sesión el servicio trata de abrir una base de datos con el mismo nombre que el rol, deberíamos crearla previamente:

~$ createdb chacho -O chacho

Creamos la base de datos concediendo la propiedad a nuestro rol. Observa que ya hemos empleado nuestro usuario y nuestro rol para invocar el comando createdb. Ahora, además, podremos conectar al servicio con el cliente psql:

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

chacho=#

Habrás notado que a pesar de haber creado una contraseña no se nos ha solicitado. Esto se debe al sistema de autenticación actual, pero veremos cómo cambiar este comportamiento.

Cómo configurar PostgreSQL en Debian 11 Bullseye

Para configurar PostgreSQL en Debian 11 Bullseye trabajaremos sobre sus archivos de configuración ubicados en la ruta /etc/postgresql/13/main/. La mayoría de los ajustes requerirán recargar la configuración del servicio:

~$ sudo systemctl reload postgresql

Mientras que unos pocos precisan el reinicio del servicio:

~$ sudo systemctl restart postgresql

Uso de contraseña

Para activar el uso de contraseña, requerido por ciertas aplicaciones y administradores de PostgreSQL, editaremos el archivo pg_hba.conf:

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

Buscamos esta directiva local:

...
local   all             all                                     peer
...

Cambiamos el valor peer por md5:

...
local   all             all                                     md5
...

Este cambio no afecta al rol postgres, ya que antes de esta directiva local existe otra exclusiva para dicho rol.

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

~$ sudo systemctl reload postgresql

Podemos comprobar que los cambios han quedado aplicados usando el cliente psql:

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

chacho=#

Ahora sí se pide la contraseña que establecimos al crear el rol.

Acceso remoto

Para poder conectar remotamente al servicio PostgreSQL de la máquina Debian 11 es necesario ajustar la configuración para que también atienda peticiones de red. Para ello editamos el archivo postgresql.conf:

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

Buscamos la directiva listen_addresses:

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

La activamos eliminando el carácter # inicial y cambiamos su valor por *:

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

Hechos estos cambios, guardamos y cerramos el archivo.

Para activar el uso de contraseñas desde red, editaremos el archivo pg_hba.conf:

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

Tras la directiva host para las conexiones locales IPv6 añadimos otra para todas las conexiones de red en general:

...
# Acceso desde red
host    all             all             all                     md5
...

Guardamos los cambios y reiniciamos el servicio para aplicar todos estos cambios:

~$ sudo systemctl restart postgresql

En caso de tener activado el firewall en Debian 11 será necesario añadir la regla que permita las conexiones entrantes al servicio PostgreSQL:

~$ sudo ufw allow postgresql

Podemos probar el acceso remoto desde otra máquina en red que disponga de algún cliente de PostgreSQL, como psql. Indicaremos la dirección del servidor Debian 11 y el rol con el que queremos conectar.

Por ejemplo, la máquina Debian 11 sobre la que hemos preparado este tutorial es accesible en el subdominio debian11.local.lan, así que desde otro sistema en red podemos emplear el comando psql del siguiente modo:

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

instalar y configurar postgresql en debian 11 bullseye

¡Funciona perfectamente!

Conclusión

Ahora que sabes cómo instalar PostgreSQL Server en Debian 11 Bullseye ya puedes desarrollar bases de datos o preparar la base para aplicaciones de terceros que requieren este motor de bases de datos relacionales.

En caso de dudas, preguntas, sugerencias, correcciones, etc. siéntete libre de dejar un comentario. Aunque los comentarios están sujetos a revisión (para evitar en la medida de lo posible el SPAM), se revisan prácticamente a diario.

Y si gracias a esta breve guía de instalación y configuración ya trabajas con bases de datos en tu propia máquina y quieres agradecérnoslo, puedes contribuir al mantenimiento de este sitio y la creación de más guías y tutoriales.

Puedes ayudarnos dejando una propina de 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies