Cómo instalar PostgreSQL en Debian 10 Buster

En esta entrada vamos a ver cómo instalar PostgreSQL en Debian 10 Buster paso a paso. Este sistema de bases de datos es bastante popular ya que muchas aplicaciones lo usan como soporte de sus datos. Por eso, al final de esta guía de instalación habrás dejado instalado el servicio PostgreSQL y creado tu propio usuario administrador para trabajar y administrar usuarios y bases de datos sobre tu servidor o VPS Debian .

Antes de instalar PostgreSQL en Debian 10 Buster

Si quieres seguir esta guía de instalación de PostgreSQL en Debian 10 Buster debes cumplir estos mínimos requisitos:

  • Tener un sistema Debian 10 Buster actualizado.
  • Estar conectado a Internet para poder descargar los paquetes necesarios.
  • Acceder a línea de comandos con un usuario con privilegios de sudo o ser root.

Si estás leyendo este tutorial es porque seguramente ya cumples estos requerimientos, así que sin más preámbulos podemos regular la altura más cómoda para nuestra mesa de trabajo, abrir una terminal de consola y pasar a la acción.

¡Ahorra 44,00 EUR!Superventas nº 1 SANODESK QS1 110 x 60 cm Escritorio Elevable Eléctrico con Tablero Escritorio Regulable en Altura Eléctrico Telescópico Bidireccional con Control de Memoria y Tecnología Anticolisión (Blanco)
¡Ahorra 48,00 EUR!Superventas nº 2 VASAGLE Escritorio Regulable en Altura, Mesa Regulable, Enchufe y CajÓn, 60 x 140 cm de Encimera, Ajuste Continuo, 4 Funciones de Memoria de Altura, MarrÓn RÚstico y Negro LSD114X01
¡Ahorra 30,00 EUR!Superventas nº 3 SONGMICS VASAGLE Escritorio Eléctrico Regulable, 60 x 120 x (72-120) cm, Ajuste Continuo, Función de Memoria con 4 Alturas, Marrón Rústico LSD172X01, 60x120x120cm

Cómo configurar el repositorio oficial de PostgreSQL en Debian 10 Buster

Debian 10 Buster incluye en sus repositorios la versión 11 de PostgreSQL, versión que funciona bastante bien con las aplicaciones de la distribución, pero que podría quedarse corta al instalar aplicaciones externas.

Si quieres trabajar con una versión más actualizada (como la 13 o la 14) es necesario configurar el repositorio oficial de PostgreSQL para Debian 10 Buster, así que creamos un archivo independiente de configuración:

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

El contenido será la siguiente línea:

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

Ya podemos cerrar el archivo.

Cómo instalar PostgreSQL en Debian 10 Buster

Para instalar PostgreSQL Server en Debian 10 Buster, independientemente de si usamos paquetes de la distribución o del repositorio oficial, actualizaremos la información de las listas de paquetes:

~$ sudo apt update

Instalaremos el paquete postgresql si trabajamos con el repositorio de la distribución o queremos la última versión disponible del repositorio oficial:

~$ sudo apt -y install postgresql

En el caso del repositorio oficial podríamos indicar una versión concreta indicando un paquete como postgresql-12, postgresql-13, etc.

Una vez descargado e instalado PostgreSQL junto con todas sus dependencias se crea un nuevo servicio, postgresql.service o postgresql, puedes usar ambos nombres indistintamente.

En Debian 10 Buster, a diferencia de otros sistemas, la instalación de PostgreSQL deja el servicio en ejecución, listo para aceptar conexiones. Además queda también activado para que arranque automáticamente con el inicio de la máquina.

Puedes comprobar que el servicio está funcionando mediante el comando systemctl status postgresql:

como instalar postgresql en debian 10 buster

Cómo conectar con PostgreSQL en Debian 10 desde consola

Para poder conectar desde consola con el servicio PostgreSQL debe existir un rol (usuario de PostgreSQL) con el mismo nombre que el usuario de Debian 10 que intenta conectar.

Durante la instalación se crea un grupo y usuario postgres que son bajo los que corre el sevidor PostgreSQL. Igualmente se crea un rol llamado postgres. Por tanto, inicialmente, el único usuario que puede conectar con PostgreSQL sería el usuario postgres, y esto sólo puede hacerse a través de sudo.

Vamos a usar este usuario postgres para crear un nuevo rol de PostgreSQL con el mismo nombre que nuestro usuario de Debian 10.

En primer lugar, crearemos el rol con el comando createuser. Usaremos el argumento –interactive para que se nos pregunte si el nuevo rol debe ser administrador. Así podremos crear nuevos roles sin tener que volver a usar el usuario postgres:

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

Ya tenemos un nuevo rol administrador de PostgreSQL, pero aún nos falta un detalle: para poder conectar con el rol, debe existir una base de datos asociada al rol con su mismo nombre. Como acabamos de crear un rol administrador con el nombre de nuestra cuenta de usuario de Debian 10, podemos utilizarlo para crear la base de datos que necesitamos con el comando createdb sin necesidad de hacer sudo con el usuario postgres:

~$ createdb chacho

Ahora sí tenemos todo lo que necesitamos para poder trabajar con nuestro propio usuario desde consola con el cliente de PostgreSQL, el comando psql:

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

chacho=#

Dentro del cliente podemos ver la versión del servidor (14.3 en este ejemplo del repositorio oficial) y un mensaje que nos invita a usar el comando help para obtener ayuda. En este punto ya puedes trabajar con sentencias SQL para crear tablas, introducir datos, realizar consultas, etc.

Para salir del cliente psql usa el comando \q o exit.

Cómo configurar PostgreSQL en Debian 10 Buster

Al momento de configurar PostgreSQL en Debian 10 Buster es importante saber que los archivos de configuración se organizan bajo la ruta /etc/postgresql/, concretamente para la versión nativa sería la ruta /etc/postgresql/11/main/, mientras que para la versión 14 del repositorio oficial, por ejemplo, sería /etc/postgresql/14/main/.

Vamos a ver cómo realizar alguna tarea de configuración concreta a continuación.

Cómo configurar el acceso por contraseña en PostgreSQL

Como habrás podido comprobar, hemos podido acceder tanto con el usuario postgres como con nuestro propio usuario sin que en ningún momento se nos solicite contraseña alguna, lo que no es muy seguro. Además, muchas aplicaciones de terceros que trabajan con PostgreSQL esperan que la autenticación por contraseña esté activada.

Antes de hacer activar la autenticación deberíamos crear las contraseñas necesarias, conectando al servicio con el rol al que quieras poner contraseña y usando el comando \password:

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

Además, si conectamos con un rol administrador, podemos asignar contraseñas a otros roles empleando el mismo comando:

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

El hecho de crear contraseñas por sí mismo no tiene ningún efecto, ya que hay que reconfigurar PostgreSQL para activar la autenticación. Para ello editaremos el archivo pg_hba.conf:

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

Buscaremos esta sección:

...
# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
...

Para mantener el comportamiento por defecto del rol postgres, es decir, sin el uso de contraseña, cambiaremos el valor peer por md5 (en la versión nativa) o scram-sha-256 (en las versiones recientes del repositorio oficial) sólo en la segunda directiva local:

...
# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
...

Si quieres que postgres también use contraseña entonces o bien puedes cambiar el valor peer en su directiva local o puedes desactivar esta mediante un carácter # al inicio de línea, ya que la segunda línea local se refiere a todos los roles (incluyendo a postgres):

...
# Database administrative login by Unix domain socket
#local   all             postgres                                peer
...

Si has decidido que postgres use contraseña deberás crearla antes de hacer estos cambios, o después si has creado algún otro rol administrador.

Una vez guardados los cambios es necesario reiniciar el servicio PostgreSQL para activarlos:

~$ sudo systemctl reload postgresql

Ahora, al tratar de acceder con el cliente psql se solicita la contraseña:

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

chacho=#

A partir de este momento puedes crear la contraseña en el momento de crear el rol con el comando createuser:

~$ createuser -P pepe
Ingrese la contraseña para el nuevo rol:
Ingrésela nuevamente:
Contraseña:

Primero se pide la contraseña y su confirmación para el nuevo rol y seguidamente la contraseña de nuestro propio rol, con el que estamos realizando la operación.

Conclusión

Ahora que sabes cómo instalar PostgreSQL en Debian 10 Buster podrás instalar este servicio en tu sistema y empezar con tus desarrollos de bases de datos o crear la infraestructura necesaria que el backend de muchas aplicaciones populares necesitan.

Si tienes alguna duda o pregunta, sugerencia o corrección puedes dejarme un comentario.

¡Ah! Y si esta guía te ha ayudado para poner en marcha PostgreSQL en tu sistema Debian 10 y quieres agradecérnoslo, puedes dejar una propina de 1 $ y así librarte de la calderilla molesta que no usas en PayPal:

¡Gracias!

5/5 - (4 votos)

1 comentario en «Cómo instalar PostgreSQL en Debian 10 Buster»

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.