Cómo instalar PostgreSQL en Ubuntu 20.04 LTS

En esta ocasión veremos cómo instalar PostgreSQL en Ubuntu 20.04 LTS Focal Fossa paso a paso, de manera que puedas trabajar con este potente servicio de bases de datos desde tu servidor o VPS Ubuntu.

Antes de instalar PostgreSQL en Ubuntu 20.04 LTS

Si tienes intención de completar esta guía de instalación de PostgreSQL en Ubuntu 20.04 LTS sólo debes tener en cuenta estos pocos requisitos básicos:

  • Una máquina Ubuntu 20.04 LTS Focal Fossa actualizada.
  • Acceso a línea de comandos con un usuario con permisos de sudo.
  • Conexión a Internet.

Cómo instalar PostgreSQL en Ubuntu 20.04

Vamos a instalar PostgreSQL en Ubuntu 20.04 LTS desde los repositorios de la propia distribución, y es que debido a lo reciente del lanzamiento de Ubuntu 20.04 está incluida la última versión de PostgreSQL.

Empezamos actualizando las listas de paquetes:

~$ sudo apt update

El paquete que necesitamos es postgresql-12 que instalaremos con apt:

~$ sudo apt install -y postgresql-12

Tras la descarga e instalación de PostgreSQL y sus dependencias se crea un nuevo servicio en Ubuntu 20.04, el servicio postgresql.service o simplemente postgresql, que queda inicializado, en ejecución y habilitado para su inicio automático con cada arranque de Ubuntu 20.04.

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

como instalar postgresql en ubuntu 20.04 lts

Instalar el cliente de PostgreSQL en Ubuntu 20.04

Si sólo quieres instalar el cliente de PostgreSQL para Ubuntu 20.04 LTS el paquete que necesitas es postgresql-client-12, que incluye el cliente de consola psql. Si has instalado el servidor no será necesario instalar este paquete, puesto que es una de las dependecias.

Cómo probar el servicio PostgreSQL

Para conectar con el cliente psql al servicio PostgreSQL en Ubuntu 20.04, inicialmente sólo disponemos del usuario administrador postgres, que tendremos que usar a través de sudo:

~$ sudo -u postgres psql
psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.

postgres=#

Para cerrar la conexión usaremos el comando exit:

postgres=# exit

Cómo crear un rol de PostgresQL para tu usuario de Ubuntu 20.04 LTS

Inicialmente sólo podemos usar el usuario postgres (creado durante la instalación del servicio) porque es el único que dispone de un rol de PostgreSQL. Puedes trabajar con sudo y postgres para administrar el servicio, pero quizás prefieras crear otro rol administrativo para tu usuario de Ubuntu 20.04.

Creamos el rol de PostgreSQL con el comando createuser:

~$ sudo -u postgres createuser --interactive chacho
Shall the new role be a superuser? (y/n) y

Ahora disponemos de un rol administrativo con el mismo nombre que nuestro usuario de Ubuntu 20.04, por lo que no será necesario volver a usar postgres con sudo.

Además de un rol, necesitamos una base de datos de PostgreSQL con el mismo nombre que el rol (y el usuario de Ubuntu 20.04), que podemos crear con el comando createdb. Pero ahora ya podemos usar nuestro propio usuario y rol directamente:

~$ createdb chacho -O chacho

Ya tenemos todo lo necesario, un usuario de Ubuntu 20.04, rol de PostgreSQL y base de datos todo con el mismo nombre. Podemos conectar directamente desde consola con psql:

~$ psql
psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.

chacho=#

De igual forma, podremos crear nuevos roles y bases de datos cada vez que lo necesitemos, como cuando lo requieran ciertas aplicaciones que instalemos:

~$ createuser juan
~$ createdb juan -O juan

Configurar PostgreSQL en Ubuntu 20.04 LTS

Vamos a ver cómo configurar PostgreSQL en Ubuntu 20.04 a través de algunos usos comunes. Es importante saber que los archivos de configuración de PostgreSQL en Ubuntu 20.04 se organizan bajo la ruta /etc/postgresql/.

Uso de contraseñas

Por defecto el acceso local a PostgreSQL no requiere contraseña, como ya hemos visto, aunque es posible que queramos activar su uso.

El primer paso será crear las contraseñas, para lo que conectaremos con el servicio:

~$ psql

Crearemos una contraseña para nuestro rol con el comando \password:

chacho=# \password
Enter new password:
Enter it again:
chacho=#

Como nuestro rol es administrativo, podemos asignar contraseñas para otros roles:

chacho=# \password juan
Enter new password:
Enter it again:
chacho=#

No basta con crear las contraseñas, es necesario activar su uso realizando algún ajuste en el archivo pg_hba.conf:

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

Buscamos la siguiente línea:

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

El valor peer indica que la autenticación local se produce buscando un rol con el mismo nombre que el del usuario de Ubuntu 20.04 que realiza la conexión. Si cambiamos peer por md5:

...
local   all             all                                     md5
...

La autenticación se producirá a través de contraseña (la que creamos anteriormente).

Guardamos los cambios y recargamos la configuración del servicio PostgreSQL.

~$ sudo systemctl reload postgresql

Al conectar de nuevo al servicio con nuestro usuario se nos solicitará la contraseña:

~$ psql
Password for user chacho:
psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.

chacho=#

Acceso remoto a PostgreSQL en Ubuntu 20.04 LTS

Por defecto PostgreSQL en Ubuntu 20.04 sólo escucha conexiones locales. Si queremos que acepte peticiones desde red tendremos que realizar ajustes de configuración en postgresql.conf:

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

Buscamos la directiva listen_addresses:

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

Esta directiva está desactivada, así que eliminaremos el carácter # al inicio de línea y sustituiremos el valor localhost por *:

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

Guardamos los cambios.

Además de este ajuste, hay que permitir las conexiones en el archivo pg_hba.conf:

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

Y en la zona de las directivas host añadimos esta otra:

...
host    all             all             all                     md5
...

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

~$ sudo systemctl restart postgresql

Configurar el firewall UFW en Ubuntu 20.04 para PostgreSQL

Si tienes activado el firewall UFW en Ubuntu 20.04 LTS será necesario añadir una regla para PostgreSQL si quieres permitir las conexiones desde red:

~$ sudo ufw allow postgresql

Cómo probar el acceso remoto a PostgreSQL en Ubuntu 20.04

Desde otro sistema en red podemos comprobar la conexión mediante un cliente de PostgreSQL como psql, indicando con el parámetro -h la dirección IP o nombre DNS del servidor Ubuntu 20.04 y con el parámetro -U el rol con el que queremos conectar:

~$ psql -h ubuntu2004.local -U chacho

instalar y configurar en postgresql en ubuntu 20.04 lts focal fossa

¡Así de fácil!

Conclusión

Ahora que sabes cómo instalar PostgreSQL en Ubuntu 20.04 LTS Focal Fossa ya puedes trabajar con este magnífico motor de bases de datos relacionales, tanto para tus propios desarrollos como para ser la base o requerimiento de terceras aplicaciones.

Si tienes alguna duda o pregunta, crees que el artículo necesita mejoras o actualización, quieres notificar algún error, etc. puedes dejar un comentario.

¡Apoya comoinstalar.me!

¿Ya funciona el servicio en tu máquina gracias a esta guía de instalación de PostgreSQL en Ubuntu 20.04 LTS Focal Fossa? Si es así y te apetece agracecérmelo, puedes contribuir de varias maneras al mantenimiento de este sitio y la elaboración de próximas guías de Ubuntu 20.04 y PostgreSQL:

Invitándome a un café:

 

Dejando una propina en PayPal con la calderilla que no usas:

 

O aprovechando alguna de estas magníficas ofertas:

¡Ahorra 24,09 EUR!Bestseller No. 1 HP 22w - Monitor 21.5' (Full HD, 1920 x 1080 pixeles, tiempo de respuesta de 5 ms, 1 x HDMI, 1 x VGA, 16:9), Color Negro
¡Ahorra 29,01 EUR!Bestseller No. 2 Samsung C32F395 - Monitor Curvo de 32' (Full HD, 4 ms, 60 Hz, LED, 16:9, 3000:1, 1800R, 250 cd/m², 178°, HDMI, Base Redonda) Blanco
¡Ahorra 5,00 EUR!Bestseller No. 3 BenQ GL2780 - Monitor Gaming de 27' FullHD (1920x1080, 1ms, 75Hz, HDMI, DisplayPort, DVI, VGA, Altavoces, Eye-care, Sensor Brillo Inteligente, Flicker-free, Low Blue Light, antireflejos) - Color Negro

¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votos, promedio: 5,00 de 5)
Cargando…

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.

ACEPTAR
Aviso de cookies