Cómo instalar PostgreSQL en Ubuntu 22.04 LTS

Esta vez vamos a explicar cómo instalar PostgreSQL en Ubuntu 22.04 LTS Jammy Jellyfish paso a paso, de forma que puedas trabajar con este potente motor de bases de datos relacionales sobre tu servidor o VPS Ubuntu, tanto en tus propios desarrollos como para preparar la base que necesitan aplicaciones de terceros.

Dispones de adaptaciones de este tutorial para otras versiones de Ubuntu y otros sistemas operativos que puedes encontrar con nuestro buscador.

Antes de instalar PostgreSQL en Ubuntu 22.04 LTS Jammy Jellyfish

Si queres seguir los pasos de esta guía de instalación de PostgreSQL en Ubuntu 22.04 LTS Jammy Jellyfish sólo necesitas contar con el siguiente escenario:

  • Un sistema Ubuntu 22.04 LTS Jammy Jellyfish actualizado.
  • Un usuario con privilegios de sudo.
  • Acceso a Internet.

Como seguramente ya dispones de todo el entorno necesario, es hora de ajustar la altura correcta de tu mesa y abrir una terminal de comandos.

Cómo instalar PostgreSQL en Ubuntu 22.04 LTS

Para instalar PostgreSQL en Ubuntu 22.04 LTS Jammy Jellyfish usaremos los paquetes de la versión incluida en los repositorios de la distribución, la 14.2 en el momento de redactar este tutorial, por lo que los actualizamos:

~$ sudo apt update

El paquete que instalaremos es postgresql:

~$ sudo apt install -y postgresql

Una vez descargado e instalado este paquete y sus dependencias disponemos de un nuevo servicio en Ubuntu 22.04 LTS, el servicio postgresql o postgresql.service, servicio que queda iniciado y listo para recibir conexiones, como podemos comprobar con el siguiente comando:

~$ systemctl status postgresql

como instalar postgresql en ubuntu 22.04 lts jammy jellyfish

Igualmente PostgreSQL queda habilitado para iniciar automáticamente con cada arranque de Ubuntu 22.04 LTS.

Cómo instalar el cliente de PostgreSQL en Ubuntu 22.04 LTS

Si sólo quieres instalar el cliente de PostgreSQL para Ubuntu 22.04 LTS el paquete que necesitas es postgresql-client:

~$ sudo apt install -y postgresql-client

Aunque si has instalado el servidor de bases de datos no será necesario instalar el cliente, ya que este forma parte de las dependencias.

En cualquier caso, ahora ya dispones del cliente de consola psql.

Cómo conectar al servicio PostgreSQL en Ubuntu 22.04 LTS

Para conectar al servicio PostgreSQL en Ubuntu 22.04 LTS disponemos del cliente de consola psql y el usuario administrador postgres. Este usuario no accede mediante contraseña, sino por socket de Unix, por lo que es necessario utilizar sudo:

~$ sudo -iu postgres psql
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

postgres=#

postgresql en ubuntu 22.04 lts jammy jellyfish

Podemos cerrar la conexión con el comando exit:

# exit

Crea tu propio usuario de PostgreSQL

Para dejar de trabajar con el usuario postgres mediante sudo es interesante crear nuestro propio usuario o rol de PostgreSQL, con idéntico nombre que el usuario que usamos en Ubuntu 22.04 LTS si nos interesa utilizar la autenticación por socket.

Para ello usaremos el comando createuser con parámetros de creación de contraseña y comportamiento interactivo, además del nombre del nuevo rol:

~$ sudo -iu postgres createuser -P --interactive instalador
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y

Se nos pedirá la contraseña y su confirmación, así como si queremos que el nuevo rol sea administrador.

Para poder usar el cliente de consola psql antes hay que crear una base de datos con el mismo nombre que el rol, ya que el cliente intenta conectar automáticamente a dicha base de datos.

Usaremos para esta tarea el comando createdb, que ahora sí podemos usar con nuestro rol administrador, indicando el nombre de la base de datos (el mismo que el del rol) y el rol al que pertenecerá:

~$ createdb instalador -O instalador

Ya tenemos lo necesario para probar el cliente psql con nuestro usuario y rol:

~$ psql
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

instalador=#

Observa que no se nos pide contraseña, a pesar de haberla creado, porque la configuración por defecto es la de intentar usar un rol con el mismo nombre que el usuario de Ubuntu 22.04 LTS. Este comportamiento se puede cambiar para trabajar con contraseñas.

Cómo configurar PostgreSQL en Ubuntu 22.04 LTS

Vamos a aprender a configurar PostgreSQL en Ubuntu 22.04 LTS Jammy Jellyfish trabajando sobre sus archivos de configuración alojados en la ruta /etc/postgresql/14/main/.

Activar el uso de contraseñas

Para trabajar con contraseñas, algo necesario cuando usamos las bases de datos PostgreSQL con aplicaciones de terceros, frontends, etc. editaremos el archivo pg_hba.conf:

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

Localizamos esta línea:

...
local   all             all                                     peer
...

Aquí se especifica que las conexiones locales se autentican mediante sockets de Unix, sin contraseñas. Es decir, se intenta conectar al servicio con un rol con el mismo nombre que el usuario del sistema que realiza la conexión. Para utilizar contraseñas cambiaremos el parámetro peer por scram-sha-256:

...
local   all             all                                     scram-sha-256
...

Si te fijas, por encima de esta línea estaba esta otra:

...
local   all             postgres                                peer
...

Esta línea configura el acceso para el usuario postgres y al figurar en el archivo de configuración antes que la línea que hemos modificado prevalecerá sobre esta, por lo que ahora todos los usuarios locales accederán por contraseña excepto postgres. Puedes modificar este comportamiento, pero ciertas tareas de mantenimiento trabajan con esta configuración.

Una vez guardados los cambios, reiniciamos el servicio:

~$ sudo systemctl restart postgresql

Si ahora probamos a conectar de nuevo con el cliente psql veremos que el comportamiento ha cambiado:

~$ psql
Password for user instalador:
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

instalador=#

Se intenta conectar con el rol con el mismo nombre que el usuario del sistema, pero esta vez se solicita la contraseña.

Acceso remoto

Por defecto PostgreSQL sólo admite conexiones locales en Ubuntu 22.04 LTS Jammy Jellyfish. Para modificar este comportamiento tendremos que trabajar sobre dos archivos de configuración, empezando por pg_hba.conf:

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

Localizamos esta sección:

...
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
...

Las directivas host configuran el acceso vía TCP/IP, en este caso local, para IPv4 e IPv6. Si queremos permitir conexiones en red tendremos que añadir una directiva más:

...
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Acceso remoto
host    all             all             all                     scram-sha-256
...

Ahora todas las conexiones TCP/IP, incluyendo las de red, requerirán contraseña.

Guardado este archivo, editamos también postgresql.conf:

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

Buscamos la siguiente línea:

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

La activamos eliminando el carácter # al inicio de línea y cambiamos su valor por un asterisco:

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

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart postgresql

Firewall

En caso de tener activado el firewall UFW en Ubuntu 22.04 LTS habrá que añadir una regla para PostgreSQL:

~$ sudo ufw allow postgresql

Cómo probar la conexión remota

Desde otra máquina en red que cuente con un cliente de PostgreSQL, por ejemplo, otra máquina Ubuntu 22.04 LTS con psql, indicamos la dirección del servidor y el rol con el que queremos iniciar sesión:

~$ psql -h ubuntu2204.local.lan -U instalador

como configurar postgresql en ubuntu 22.04 lts jammy jellyfish

Se solicitará la contraseña y si es correcta se establecerá la conexión, mostrando información sobre las versiones de cliente y servidor y el cifrado de la conexión.

Conclusión

Ahora que sabes cómo instalar PostgreSQL en Ubuntu 22.04 LTS Jammy Jellyfish ya puedes trabajar con bases de datos relacionales sobre tu máquina, tanto para desarrollo como para establecer la base y requerimientos de otras aplicaciones.

Si quieres notificar algún error, realizar alguna sugerencia, etc. puedes dejar un comentario (están moderados para evitar el SPAM, pero se revisan prácticamente a diario).

¡Apoya comoinstalar.me!

¿Ya funciona este motor de bases de datos en tu sistema? Si es así y quieres agradecérnoslo cualquier mínima contribución al mantenimiento de este sitio y creación de más artículos es bienvenida.

Puedes ayudarnos dejando una propina a partir de 1 $ desde PayPal:

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

¡Gracias!

Valora esta entrada

5/5 - (3 votos)

Deja un comentario