Cómo instalar PostgreSQL en CentOS 8

Vamos a ver en esta entrada cómo instalar PostgreSQL en CentOS 8 paso a paso, de modo que al final de este tutorial podrás administrar y trabajar con este potente servicio de bases de datos en tu servidor o VPS CentOS de forma local o remota.

Antes de instalar PostgreSQL en CentOS 8

Para seguir los pasos de esta guía de instalación de PostgreSQL en CentOS 8 necesitarías pasar estos mínimos requisitos:

  • Un sistema CentOS 8 actualizado.
  • Acceso a línea de comandos como root o un usuario con capacidades de sudo.
  • Conexión a Internet.

Cómo instalar PostgreSQL Server en CentOS 8

Vamos a instalar PostgreSQL en CentOS 8 usando los paquetes disponibles en los repositorios de la distribución, así que es buena idea actualizar las listas de paquetes e incluso el software ya instalado:

~$ sudo yum update -y

Hecho esto ya podemos instalar el paquete que necesitamos, postgresql-server, con yum:

~$ sudo yum install -y postgresql-server

Tras descargar e instalar el paquete y sus dependencias se crea un nuevo servicio en CentOS 8, llamado postgresql.service o postgresql si prefieres el nombre corto.

El servicio postgresql no inicia tras la instalación ni queda habilitado para iniciar automáticamente en cada arranque de CentOS 8.

Pero aún no podemos iniciarlo, ya que es necesario inicializar las bases de datos antes de arrancar el servicio. Para esta inicialización lanzaremos el comando postgresql-setup:

~$ sudo postgresql-setup --initdb

Hecho esto es el momento de iniciar PostgreSQL:

~$ sudo systemctl start postgresql

Si quieres que PostgreSQL arranque automáticamente en cada inicio de CentOS 8, habrá también que habilitar el servicio:

~$ sudo systemctl enable postgresql

Podemos comprobar el estado del servicio PostgreSQL en cualquier momento mediante el comando systemctl status postgresql.

como instalar postgresql en centos 8

Cómo instalar el cliente de PostgreSQL en CentOS 8

Al instalar PostgreSQL Server se instala como dependencia el cliente. En el caso de que sólo quieras instalar un cliente de PostgreSQL para acceder remotamente a otro servidor, el paquete que debes instalar es postgresql:

~$ sudo yum install -y postgresql

Entre otros comandos y componentes, se instalará el cliente de consola psql.

Cómo acceder a PostgreSQL en CentOS 8

Debido al sistema de roles de PostgreSQL no es posible acceder directamente al servicio con los usuarios del sistema. El único rol que existe de forma predeterminada es postgres, para los que la instalación de PostgreSQL ha creado también un usuario postgres de CentOS 8.

Por ello, una forma de conectar a PostgreSQL con el cliente de consola psql puede ser usando sudo:

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

postgres=#

De esta forma, al conectar como usuario postgres de CentOS 8 el cliente psql lo asociará al rol con el mismo nombre.

Otra forma de acceder es crear un rol y una base de datos para nuestro usuario de trabajo. Para esto tenemos los comandos createuser y createdb.

De nuevo utilizaremos el usuario postgres para crear el rol de nuestro usuario de trabajo:

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

De la misma forma crearemos la base de datos para asociarla al rol de nuestro usuario:

~$ sudo -u postgres -i createdb chacho

Ahora ya podemos iniciar sesión con el cliente psql con nuestro usuario de trabajo, al tener su propio rol y base de datos:

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

chacho=#

En este caso hemos creado un rol administrador, con lo que ya podremos crear otros roles con nuestro usuario de trabajo, sin tener que volver a usar al usuario postgres con sudo.

Acceso remoto a PostgreSQL en CentOS 8

Por defecto el servicio PostgreSQL sólo admite conexiones locales, así que si queremos acceder remotamente tendremos que hacer algunos cambios en la configuración.

Editaremos el archivo de configuración:

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

Y buscaremos la directiva listen_addresses:

...
# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for $
                                        # (change requires restart)
...

La directiva se encuentra desactivada, por lo que se toma el valor por defecto, localhost. Podemos ver en los comentarios que el valor que necesitamos sería ‘*’ y que tal cambio exige reiniciar el servicio.

Así que activamos la directiva con el valor que nos interesa:

listen_addresses = '*'

Guardamos y cerramos el archivo.

No basta con este cambio, ya que hay que configurar el método de autenticación para los usuarios remotos. Para ello editaremos el archivo pg_hba.conf:

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

Y añadimos estas líneas al final del archivo:

# Conexiones remotas IPv4
host    all     all     0.0.0.0/0       md5

Al especificar md5 como método de autenticación estamos indicando que los usuarios que conecten remotamente deberán identificarse con contraseña. Guardamos los cambios, cerramos el archivo y reiniciamos PostgreSQL:

~$ sudo systemctl restart postgresql

Configurar el firewall de CentOS 8 para PostgreSQL

Lo habitual es que el firewall de CentOS 8 esté activado, así que para permitir conexiones al servicio PostgreSQL debemos añadir la excepción correspondiente:

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

Y recargaremos la configuración del firewall para aplicar los cambios:

~$ sudo firewall-cmd --reload

Conectar de forma remota a PostgreSQL

Como hemos visto antes, hemos especificado el uso de contraseñas para los usuarios remotos. Así que debemos crear esas contraseñas para los roles locales que vayamos a usar remotamente.

Siguiendo con el ejemplo de este tutorial, antes creamos un rol para nuestro usuario de trabajo. Si queremos acceder al servicio PostgreSQL de nuestro sistema CentOS 8 desde otra máquina con el rol de nuestro usuario, debemos crear una contraseña para dicho rol.

Así que conectaremos localmente al servicio PostgreSQL y crearemos la contraseña para el rol:

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

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

Ahora accederemos desde el sistema remoto equipado con el cliente psql, indicando con el parámetro -h la dirección del servidor CentOS 8 y con el parámetro -U el rol con el que queremos conectar:

~$ psql -h centos8.local -U chacho
Contraseña para usuario chacho:
psql (9.2.24, servidor 10.6)
ADVERTENCIA: psql versión 9.2, servidor versión 10.0.
          Algunas características de psql pueden no funcionar.
Digite «help» para obtener ayuda.

chacho=#

Se nos pide la contraseña del rol que queremos usar y tras facilitarala podemos trabajar de forma interactiva como si estuviésemos haciendo en local.

Conclusión

Ahora ya sabes cómo instalar y configurar PostgreSQL Server en CentOS 8, cómo crear roles, bases de datos, administradores y trabajar local y remotamente. Ya estás listo para dar soporte a cualquier aplicación que trabaje sobre este potente motor de bases de datos en CentOS 8.

¡Apoya este sitio!

¿Te ha servido esta guía de instalación de PostgreSQL en CentOS 8? Pues si quisieras agradecérnoslo, la más mínima aportación contribuye al mantenimiento de este sitio y la creación y elaboración de más guías y tutoriales. ¡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