Cómo instalar PostgreSQL en Debian 9 Stretch

Cómo instalar PostgreSQL en Debian 9 Stretch

En esta entrada mostraremos cómo instalar PostgreSQL en Debian 9 paso a paso, un motor de bases de datos de código abierto que puede resultar complicado de instalar si vienes de utilizar otras bases de datos más populares. Al final de esta guía habrás logrado instalar y poner en funcionamiento PostgreSQL Server en Linux Debian 9 Stretch y podrás conectar desde el cliente de consola con tu usuario.

Antes de instalar PostgreSQL en Debian 9

Para poder instalar PostgreSQL Server en Linux Debian 9 Stretch siguiendo esta guía necesitamos cumplir los siguientes requerimientos mínimos:

  • Un sistema Debian 9 GNU/Linux Stretch actualizado.
  • Un usuario con permisos de sudo o el mismo root (menos recomendable).
  • Conexión a Internet.

Cómo instalar PostgreSQL en Debian 9

Vamos a instalar PostgreSQL en Debian 9 usando los paquetes disponibles en el repositorio oficial de Debian 9. Así que la primera acción será actualizar la información de los repositorios:

~$ sudo apt update

Con las listas de paquetes actualizadas ya podemos descargar e instalar PostgreSQL con apt:

~$ sudo apt -y install postgresql

A diferencia de otras versiones de Linux y sistemas Unix, en Debian 9 la instalación deja PostgreSQL Server perfectamente inicializado y funcionando. Mientras que en otros sistemas una vez instalado PostgreSQL es necesario inicializar la base de datos antes de lanzar el servicio por primera vez, en Debian 9 ese trabajo lo hace apt por nosotros. De hecho, puedes comprobar que el servicio está iniciado y disponible con el comando systemctl status postgresql:

como instalar postgresql en debian 9 stretch

Cómo conectar con PostgreSQL desde consola en Debian 9

Durante la instalación de PostgreSQL en Debian 9 se crea un usuario y un grupo postgres con los que funciona el servicio. Pero además este usuario postgres es administrador por lo que inicialmente sólo podemos conectar con el servicio con este usuario.

PostgreSQL trabaja con un sistema de roles, que vienen a ser algo parecido a los usuarios de otros sistemas de bases de datos. Si intentamos conectar con el cliente psql y nuestro usuario recibiremos este mensaje:

~$ psql
psql: FATAL:  no existe el rol «chacho»

Ni siquiera es posible conectar como root a través de sudo:

~$ sudo psql
psql: FATAL:  no existe el rol «root»

La única forma de conectar con el servidor PostgreSQL es usando el usuario postgres con sudo:

~$ sudo -u postgres psql
psql (9.6.15)
Digite «help» para obtener ayuda.

postgres=#

Cómo crear tu rol de PostgreSQL en Debian 9

Vamos a crear un nuevo rol de PostgreSQL con tu usuario de Debian 9. Para ello usaremos el comando createuser de PostgreSQL como 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 creado un rol con el mismo nombre que nuestra cuenta de Debian, en este caso además se tratará de un superusuario, para poder administrar otros usuarios y bases de datos sin necesidad de recurrir al usuario postgres con sudo. Sin embargo, aún no podemos conectar con el cliente psql, si lo intentas obtendrás un error:

~$ psql
psql: FATAL:  no existe la base de datos «chacho»

Esto ocurre porque cuando se inicia sesión en PostgreSQL se vincula al rol correspondiente con una base de datos con el mismo nombre que el rol. En este caso intentamos acceder con el rol chacho, pero aún no existe la base de datos chacho. Así que usaremos por última vez el usuario postgres para crear esa base de datos mediante el comando createdb:

~$ sudo -u postgres createdb chacho -O chacho

Con el parámetro -O otorgamos la propiedad de la base de datos al rol que queramos. Lo hacemos así porque queremos que el rol sea el propietario de su propia base de datos, ya qu en caso contrario la base de datos pertenecería al rol que la crea (postgres en este caso).

Tenemos rol, tenemos base de datos… es hora de iniciar sesión con el cliente psql y nuestra cuenta de Debian:

~$ psql
psql (9.6.15)
Digite «help» para obtener ayuda.

chacho=#

Y ya podemos empezar a usar el lenguaje SQL para crear y modificar tablas, insertar y editar datos, realizar consultas, etc. Por ejemplo para crear una tabla de pruebas en nuestra base de datos, lo hacemos mediante SQL:

chacho=# create table pruebas ();
CREATE TABLE
chacho=# \d
       Listado de relaciones
 Esquema | Nombre  | Tipo  | Dueño
---------+---------+-------+--------
 public  | pruebas | tabla | chacho
(1 fila)

chacho=#

Con «create table…» creamos la tabla y con el comando \d vemos las tablas de la base de datos. El uso de SQL y los comandos del cliente psql exceden del alcance de esta pequeña guía de instalación. De todas formas, el comando \h o \h comando te proporcionará mucha ayuda sobre los comandos disponibles.

Crear una contraseña para el rol postgres

Acabamos de comprobar que el rol postgres no tiene contraseña, pero si consideras que para tu sistema sería necesario crearla, una vez iniciada sesión en el cliente psql utiliza el comando \password:

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

Si has copiado el ejemplo, introduciendo \q se sale del cliente y vuelves a consola.

No basta con crear la contraseña, ya que en la configuración actual de PostgreSQL no se pide contraseña para el usuario postgres en local.

En el archivo pg_hba.conf es donde se configura el modo y circunstancias en que se autentican los usuarios, así que lo editaremos para hacer el cambio que necesitamos:

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

Buscaremos esta línea:

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

Y cambiaremos el valor peer por md5:

...
local   all             postgres                                md5
...

Es necesario reiniciar el servicio para aplicar los cambios:

~$ sudo systemctl restart postgresql

Ahora, al iniciar sesión como rol postgres se solicitará la contraseña que acabamos de crear:

~$ sudo -u postgres psql
Contraseña:
psql (9.6.15)
Digite «help» para obtener ayuda.

postgres=#

Instalación de aplicaciones que necesitan PostgreSQL en Debian

Con nuestro rol administrador podremos crear otros roles cada vez que queramos instalar en nuestro sistema apliaciones que trabajen sobre una base de datos PostgreSQL y requieran su propia base.

Conclusión

Ahora que ya sabes cómo instalar PostgreSQL en Debian 9 ya puedes empezar a trabajar con SQL para tus propios desarrollos o crear bases de datos para aplicaciones y sistemas que se apoyan en este motor de bases de datos de código abierto.

Si tienes alguna pregunta, duda, sugerencia o quieres informar de algún error puedes dejar un comentario.

Y si te ha servido esta guía para poner por fin en marcha PostgreSQL sobre Debian, ¡siempre puedes invitarme a un café!

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

Esta entrada tiene un comentario

  1. Muy bueno, muchas gracias. Vendría bien alguna lista de (por ejemplo) las cinco cosas más usadas de PostgreSQL después de ser instalado, o algo así. Se me ha hecho corto y me he quedado con ganas de más.

Deja un comentario

Cerrar menú

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, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies