como instalar postgresql en ubuntu 18.04

Cómo instalar PostgreSQL en Ubuntu 18.04

Esta entrada la dedico a ver cómo instalar PostgreSQL en Ubuntu 18.04 LTS Bionic Beaver paso paso, un sistema de bases de datos bastante utilizado y que puede ser interesante conocer, ya que algunas aplicaciones lo requieren como backend. Al final de esta guía tendrás el servicio instalado y funcionando en tu servidor o VPS Ubuntu, con tu propio usuario administrador.

Antes de instalar PostgreSQL en Ubuntu 18.04 LTS

Para seguir esta guía de instalación necesitas cumplir los siguientes requisitos:

  • Un sistema Ubuntu 18.04 LTS Bionic Beaver actualizado.
  • Conexión a Internet.
  • Acceso a línea de comandos con un usuario con privilegios de root o sudo.

Satisfechos estos mínimos requerimientos, podemos ponernos ya delante del teclado y empezar a trabajar.

Cómo instalar PostgreSQL en Ubuntu 18.04 LTS

Vamos a instalar PostgreSQL en Ubuntu 18.04 usando los paquetes disponibles en el propio repositorio de Ubuntu, para lo cual la primera acción debería ser actualizar las listas y los paquetes ya instalados:

~$ sudo apt update && sudo apt -y upgrade

Hecho esto ya podemos instalar el paquete postgresql que contiene la última versión disponible en Ubuntu del servidor:

~$ sudo apt -y install postgresql

Se instalan el paquete principal y todas sus dependencias entre las que se encuentran además los clientes y herramientas de consola.

Durante la instalación se crea el servicio postgresql.service o, la versión breve, postgresql.

A diferencia de otras plataformas, en Ubuntu 18.04 durante la instalación queda inicializada la base de datos. Al no requerir una inicialización manual, el instalador deja el servicio activado, por lo que PostgreSQL iniciará con cada arranque de Ubuntu. Además el servicio queda automáticamente iniciado, por lo que ya es posible conectar con el mismo para trabajar.

En cualquier momento puedes comprobar el estado del servicio PostgreSQL en Ubuntu 18.04 con el comando systemctl status postgresql:

como instalar postgresql en ubuntu 18.04 lts bionic beaver

Cómo crear tu propio usuario o rol de PostgreSQL en Ubuntu 18.04 LTS

La instalación de PostgreSQL crea un usuario y grupo postgres en Ubuntu 18.04. Este usuario queda vinculado con el rol postgres de PostgreSQL, así que en principio este es el único usuario con el que se puede trabajar en PostgreSQL.

Nuestra primera acción podría ser crear nuestro propio rol de PostgreSQL para asociar con nuestro usuario de Ubuntu 18.04.

A través de sudo usaremos la herramienta createuser para crear nuestro rol:

~$ sudo -u postgres createuser --interactive
Enter name of role to add: chacho
Shall the new role be a superuser? (y/n) y

Al usar el argumento –interactive la herramienta createrole nos preguntará de forma interactiva el nombre del nuevo rol, si debe ser o no un rol administrativo, etc.

Recuerda que para nuestro objetivo (crear un rol de PostgreSQL asociado a nuestro usuario en Ubuntu) debemos dar el mismo nombre que el usuario al nuevo rol.

Necesitamos una base de datos con el mismo nombre que el nuevo rol, por tanto usaremos de modo parecido el comando createdb, a través de sudo y el usuario postgres:

~$ sudo -u postgres createdb chacho -O chacho

Ya tenemos un rol y una base de datos con el mismo nombre que nuestro usuario de Ubuntu, por lo tanto ya podemos usar directamente (sin sudo) los comandos createuser y createdb. Pero también podemos utilizar directamente el cliente psql:

~$ psql
psql (10.12(Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.

chacho=#

En el cliente ya podemos trabajar con sentencias SQL o usar comandos como:

  • \d para mostrar relaciones y tablas.
  • \h para mostrar ayuda sobre comandos y sentencias SQL.
  • \q para salir del cliente.
  • etc.

De la misma forma que acabamos de hacer, usando nuestro nuevo rol administrador, podemos crear nuevos roles y bases de datos necesarios para otras aplicaciones que necesiten trabajar sobre PostgreSQL.

Cómo configurar PostgreSQL en Ubuntu 18.04 LTS

Vamos a configurar PostgreSQL en Ubuntu 18.04 LTS mediante algunos casos prácticos que se dan prácticamente en todas las instalaciones.

Activar autenticación por contraseña

Hemos visto que se puede acceder al servicio sin necesidad de contraseña, pero en muchos entornos lo deseable es que exista autenticación. Si ya tenemos un usuario creado podemos crearle una contraseña una vez iniciada sesión con el comando password:

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

Y si nuestro usuario es administrador se puede usar el mismo comando para crear contraseñas para otros roles existentes:

...
=# \password paco
Enter new password:
Enter it again:
=#

Desde línea de comandos podremos crear roles con contraseña utilizando el parámetro -P de createuser:

~$ sudo -u postgres createuser -P juan
Enter password for new role:
Enter it again:
~$

Sin embargo, el hecho de que el usuario tenga una contraseña asignada no significa que se le solicite, como podemos comprobar si hemos creado una contraseña para nuestro rol asociado y volvemos a iniciar sesión:

~$ psql
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.

chacho=#

Será necesario editar el archivo pg_hba.conf de PostgreSQL para realizar algunos ajustes:

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

Buscamos 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
...

En la segunda directiva local cambiaremos peer por md5:

...
local   all             all                                     md5
...

De esta forma seguiremos usando sudo para el rol postgres pero todos los demás requerirán el uso de contraseñas. Si quieres que postgres use contraseña créala primero y después cambia peer por md5 en su directiva local.

Una vez guardados los cambios y cerrado el archivo, habrá que recargar la configuración del servicio:

~$ sudo systemctl reload postgresql

Ahora, al iniciar sesión con nuestro usuario se nos solicitará la contraseña:

~$ psql
Password:
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.

=#

Acceso remoto a PostgreSQL en Ubuntu 18.04 LTS

Si queremos permitir el acceso remoto a PostgreSQL en Ubuntu 18.04 LTS tendremos que realizar algún ajuste en el archivo postgresql.conf:

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

Buscamos la directiva listen_addresses:

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

La directiva está desactivada, por lo que toma el valor por defecto que sólo permite conexiones locales. Eliminaremos el carácter # al inicio de línea y cambiaremos localhost por *:

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

Guardamos los cambios y cerramos el archivo.

Casi con total seguridad, si permitimos acceso remoto a PostgreSQL querremos que el acceso sea mediante contraseña, por lo que activaremos este tipo de acceso en pg_hba.conf:

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

Encontraremos un bloque de directivas host como este:

...
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
...

Añadiremos a continuación de las líneas anteriores una nueva directiva host:

...
# Acceso remoto
host    all             all             all                     md5
...

Guardamos los cambios, cerramos el archivo y reiniciamos el servicio para aplicar todos estos cambios:

~$ sudo systemctl restart postgresql

A partir de este momento PostgreSQL queda a la escucha de conexiones desde red.

Configurar el firewall de Ubuntu 18.04 para PostgreSQL

Si tienes activado el firewall UFW en Ubuntu 18.04 LTS será necesario añadir una regla para permitir las conexiones entrantes a PostgreSQL:

~$ sudo ufw allow postgresql

Cómo acceder remotamente a PostgreSQL en Ubuntu 18.04 LTS

Para probar el acceso remoto al servicio PostgreSQL de nuestra máquina Ubuntu 18.04 estableceremos conexión desde red con cualquier tipo de cliente, por ejemplo el ya conocido cliente de consola psql., indicando con el parámetro –host la dirección IP o nombre DNS del servidor Ubuntu 18.04 LTS donde está corriendo PostgreSQL, y con el parámetro -U el rol con el que queremos conectar:

~$ psql --host ubuntu64.local.lan -U chacho

instalar y configurar postgresql en ubuntu 18.04 lts bionic beaver

Y se establecerá conexión, pudiendo trabajar como si lo hiciésemos localmente.

Conclusión

Ahora que sabes instalar PostgreSQL en Ubuntu 18.04 LTS Bionic Beaver ya puedes poner en funcionamiento este servicio para tus desarrollos o para soportar el backend de las aplicaciones que requieran un backend en este motor de bases de datos.

Si tienes cualquier consulta, sugerencia, notificación, etc. no dudes en dejar un comentario.

¡Apoya este sitio!

¿Te gusta esta guía de PostgreSQL en Ubuntu 18.04 LTS Bionic Beaver? ¿Quieres acceder a futuros contenidos de este tipo? Si te apetece contribuir con una mínima donación al mantenimiento de este sitio, te estaremos muy agradecidos, y puedes hacerlo invitándonos a un café:

 

O dejando 1 $ de propina en PayPal:

¡Gracias!

Valora esta entrada

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

4 comentarios en “Cómo instalar PostgreSQL en Ubuntu 18.04”

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