Cómo instalar PostgreSQL en Fedora 31

En esta entrada explicamos cómo instalar PostgreSQL en Fedora 31 paso a paso, de modo que puedas hacer funcionar este servicio de bases de datos en tu servidor o VPS Fedora tanto con acceso local como remoto.

Antes de instalar PostgreSQL en Fedora 31

Para poder seguir esta guía de instalación y configuración de PostgreSQL en Fedora 31 necesitas partir de estos mínimos requerimientos:

  • Un sistema Fedora 31 actualizado.
  • Acceso a terminal de comandos con un usuario con privilegios de sudo o el propio root.
  • Conexión a Internet.

Cómo instalar PostgreSQL en Fedora 31

Vamos a instalar PostgreSQL en Fedora 31 desde los repositorios del sistema, por lo que debemos actualizar inicialmente las listas de paquetes:

~$ sudo yum update

El paquete que necesitamos es postgresql-server y lo instalamos con yum:

~$ sudo yum install -y postgresql-server

Una vez que termina la descarga e instalación de PostgreSQL y sus dependencias, se crea un nuevo servicio en Fedora 31, el servicio postgresql.service o postgresql si lo prefieres.

PostgreSQL no queda en ejecución ni habilitado para iniciar automáticamente en cada arranque con Fedora 31, así que tendremos que realizar esta configuración manualmente.

Pero antes de iniciar el servicio por vez primera es necesario inicializar las bases de datos de PostgreSQL:

~$ sudo /usr/bin/postgresql-setup --initdb

Ahora podemos lanzar el servicio PostgreSQL con systemctl:

~$ sudo systemctl start postgresql

Si queremos que PostgreSQL esté siempre disponible e inicie automáticamente con Fedora 31, habilitamos el servicio:

~$ sudo systemctl enable postgresql

Podemos comprobar el estado de PostgreSQL en cualquier momento con el comando systemctl status postgresql:

como instalar postgresql en fedora 31

Cómo saber la versión instalada de PostgreSQL en Fedora 31

Si necesitas saber qué versión de PostgreSQL has instalado en Fedora 31, puedes usar el comando pg_ctl en consola:

~$ pg_ctl -V
pg_ctl (PostgreSQL) 11.5

Cómo instalar el cliente de PostgreSQL en Fedora 31

Al instalar el servidor automáticamente se instala como dependencia el cliente, pero si lo que quieres es únicamente instalar el cliente de PostgreSQL en Fedora 31 el paquete que necesitas es postgresql:

~$ sudo yum install -y postgresql

Acceso al servicio PostgreSQL en Fedora 31

Para conectar con el servicio PostgreSQL en Fedora 31 desde consola podemos usar el cliente de consola psql con el usuario administrador, postgres:

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

postgres=# exit
~$

Pero si quieres tener un rol de PostgreSQL asociado a tu usuario de trabajo en Fedora 31, puedes crearlo usando postgres, con el que en este ejemplo crearemos un usuario administrador:

~$ sudo -iu postgres createuser --interactive
Ingrese el nombre del rol a agregar: chacho
¿Será el nuevo rol un superusuario? (s/n) s
~$

Ya tenemos un rol para nuestro usuario. Ahora necesitamos una base de datos para este rol, ya que al iniciar sesión PostgreSQL intenta asociar una base de datos con el mismo nombre que el rol que realiza la conexión. Podemos estrenar nuestro rol administrador creando esta base:

~$ createdb chacho -O chacho

Y ya podemos conectar con el servicio y nuestro usuario de Fedora 31 a través del rol con el mismo nombre que acabamos de configurar:

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

chacho=#

Cómo configurar PostgreSQL en Fedora 31

Para configurar PostgreSQL en Fedora 31 es importante saber que el archivo principal de configuración, postgresql.conf, se encuentra en la ruta /var/lib/pgsql/data/.

Cualquier cambio que realicemos hará efecto al reiniciar el servicio:

~$ sudo systemctl reload postgresql

Autenticación mediante contraseña

Puedes crear una contraseña para tu rol habiendo iniciado sesión con el cliente psql mediante el comando \password:

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

Si el rol es administrador, podrá usar el mismo comando para crear contraseñas para otros roles:

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

Pero no basta con crear las contraseñas. Para que sean solicitadas al iniciar sesión local es necesario editar el archivo pg_hba.conf:

~$ sudo nano /var/lib/pgsql/data/pg_hba.conf

Buscaremos la siguiente directiva local:

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

Cambiaremos el método de autenticación peer por md5:

...
local   all             all                                     md5
...

Recargamos la configuración de PostgreSQL:

~$ sudo systemctl reload postgresql

Y ahora cualquier rol tendrá que identificarse con su contraseña:

~$ psql
Contraseña para usuario chacho:
psql (11.5)
Digite «help» para obtener ayuda.

chacho=#

Cómo acceder remotamente a PostgreSQL en Fedora 31

Si quieres acceder de forma remota al servicio PostgreSQL en Fedora 31 el primer paso es que el servicio atienda peticiones desde cualquier adaptador de red, ya que por defecto sólo atiende peticiones locales.

Para ello editaremos la configuración:

~$ sudo nano /var/lib/pgsql/data/postgresql.conf

Buscaremos la directiva listen_addresses:

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

Está desactivada, así que cambiaremos el valor por defecto y eliminaremos el carácter # inicial:

...
listen_addresses = '*'
...

Guardamos los cambios y cerramos el archivo.

Ahora hay que permitir que los roles puedan conectar de forma remota, para lo que editamos el archivo pg_hba.conf:

~$ sudo nano /var/lib/pgsql/data/pg_hba.conf

Añadimos una línea como esta al final del archivo:

...
host    all     all     all     md5

Esta línea, además de permitir a los roles acceder remotamente, exige autenticación mediante contraseña, por lo que debes crear contraseñas para los roles que quieras que accedan remotamente.

Reiniciamos el servicio:

~$ sudo systemctl restart postgresql

Cómo configurar el firewall de Fedora 31 para PostgreSQL

Como el firewall de Fedora 31 suele estar activo por defecto, es necesario añadir una regla para PostgreSQL si queremos permitir conexiones desde la red al servicio:

~$ sudo firewall-cmd --permanent --add-service=postgresql

Activamos la nueva regla recargando la configuración del firewall:

~$ sudo firewall-cmd --reload

Acceso remoto a PostgreSQL

Podemos comprobar el funcionamiento del acceso remoto al servicio PostgreSQL en Fedora 31 haciendo uso del cliente psql en otro sistema. Habrá que indicar la dirección del servidor Fedora 31 con el parámetro -h y el rol con el que queremos iniciar sesión con el parámetro -U:

como configurar postgresql en fedora 31

En este caso el cliente pertenece a una versión anterior a la del servidor, pero funciona perfectamente.

Conclusión

Ya has visto qué fácil es instalar PostgreSQL en Fedora 31, crear roles, crear contraseñas, bases de datos, etc. Incluso permitir el acceso remoto.

Si te ha quedado alguna duda o pregunta, tienes alguna sugerencia, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya tienes en marcha el servicio gracias a esta guía de instalación y configuración de PostgreSQL en Fedora 31? En caso afirmativo, si quieres agradecérnoslo, cualquier pequeña aportación contribuye al mantenimiento de este sitio y a la creación de nuevos tutoriales de Fedora 31 y PostgreSQL. ¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 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