En esta entrada explicamos cómo instalar PostgreSQL Server en Debian 12 Bookworm 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.
Tabla de contenidos
Antes de instalar PostgreSQL en Debian 12 Bookworm
Si estás interesado en seguir los pasos de esta guía de instalación de PostgreSQL en Debian 12 Bookworm sólo necesitas partir de estos simples requerimientos:
- Un sistema Debian 12 Bookworm 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 12 Bookworm
Vamos a instalar PostgreSQL para Debian 12 desde los repositorios de la distribución, que incluyen nativamente la versión 15, por tanto el primer paso es actualizarlos:
~$ sudo apt update
El paquete que necesitamos es postgresql, que instalamos con apt:
~$ sudo apt install -y postgresql
Tras la descarga e instalación de PostgreSQL y sus dependencias tenemos disponible un nuevo servicio en el sistema, 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
:
PostgreSQL queda escuchando peticiones locales exclusivamente.
Cómo instalar el cliente de PostgreSQL para Debian 12
Si sólo necesitas el cliente de consola de PostgreSQL para Debian 12, el paquete que debes instalar es postgresql-client:
~$ sudo apt install -y postgresql-client
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 12
Para conectar a PostgreSQL desde consola disponemos inicialmente del rol de PostgreSQL postgres y del usuario postgres de Debian 12. 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 -iu postgres psql psql (15.6 (Debian 15.6-0+deb12u1)) 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 12:
~$ sudo -iu postgres createuser chacho --interactive -P Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n) y
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 (15.6 (Debian 15.6-0+deb12u1)) 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 12 Bookworm
Para configurar PostgreSQL en Debian 12 Bookworm trabajaremos sobre sus archivos de configuración ubicados en la ruta /etc/postgresql/15/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/15/main/pg_hba.conf
Buscamos esta directiva local:
... local all all peer ...
Cambiamos el valor peer por scram-sha-256:
... local all all scram-sha-256 ...
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 (15.6 (Debian 15.6-0+deb12u1)) 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 12 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/15/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/15/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 scram-sha-256 ...
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 12 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 12 y el rol con el que queremos conectar.
Por ejemplo, la máquina Debian 12 sobre la que hemos preparado este tutorial es accesible en el subdominio debian12.local.lan, así que desde otro sistema en red podemos emplear el comando psql del siguiente modo:
~$ psql -h debian12.local.lan -U chacho
¡Funciona perfectamente!
Conclusión
Ahora que sabes cómo instalar PostgreSQL Server en Debian 12 Bookworm 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!