Esta vez vamos a explicar cómo instalar PostgreSQL en Ubuntu 24.04 LTS Noble Numbat paso a paso, de forma que puedas trabajar con este potente motor de bases de datos relacionales sobre tu máquina 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.
Contenido
Antes de instalar PostgreSQL en Ubuntu 24.04 LTS Noble Numbat
Si quieres seguir los pasos de esta guía de instalación de PostgreSQL en Ubuntu 24.04 LTS Noble Numbat sólo necesitas contar con el siguiente escenario:
- Un sistema Ubuntu 24.04 LTS Noble Numbat 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 24.04 LTS
Para instalar PostgreSQL en Ubuntu 24.04 LTS Noble Numbat usaremos los paquetes de la versión incluida en los repositorios de la distribución, la 16.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 24.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
Igualmente PostgreSQL queda habilitado para iniciar automáticamente con cada arranque de Ubuntu 24.04 LTS.
Cómo instalar el cliente de PostgreSQL en Ubuntu 24.04 LTS
Si sólo quieres instalar el cliente de PostgreSQL para Ubuntu 24.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 24.04 LTS
Para conectar al servicio PostgreSQL en Ubuntu 24.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 (16.2 (Ubuntu 16.2-1ubuntu4)) Type "help" for help. postgres=#
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 24.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 (16.2 (Ubuntu 16.2-1ubuntu4)) 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 24.04 LTS. Este comportamiento se puede cambiar para trabajar con contraseñas.
Cómo configurar PostgreSQL en Ubuntu 24.04 LTS
Vamos a aprender a configurar PostgreSQL en Ubuntu 24.04 LTS Noble Numbat trabajando sobre sus archivos de configuración alojados en la ruta /etc/postgresql/16/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/16/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 (16.2 (Ubuntu 16.2-1ubuntu4)) 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 24.04 LTS Noble Numbat. Para modificar este comportamiento tendremos que trabajar sobre dos archivos de configuración, empezando por pg_hba.conf:
~$ sudo nano /etc/postgresql/16/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/16/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 con el cliente psql instalado, indicamos la dirección del servidor y el rol con el que queremos iniciar sesión:
~$ psql -h ubuntu2404.local.lan -U instalador
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 24.04 LTS Noble Numbat 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!