Cómo instalar PostgreSQL en openSUSE Leap 15

En este artículo explicamos cómo instalar PostgreSQL en openSUSE Leap 15 paso a paso, de modo que dejaremos funcionando este potente sistema de bases de datos en nuestro servidor o VPS OpenSUSE.

Antes de instalar PostgreSQL en openSUSE Leap 15

Si tu intención es seguir paso a paso esta guía de instalación de PostgreSQL en openSUSE Leap 15 entonces deberías satisfacer al menos los siguientes requisitos mínimos:

  • Una máquina openSUSE Leap 15.1, 15.2 ó 15.3 actualizada.
  • Acceso a consola con un usuario con privilegios de sudo o el propio root.
  • Conexión a Internet.

Cómo instalar PostgreSQL en openSUSE Leap 15

Vamos a instalar PostgreSQL en openSUSE Leap 15 desde los repositorios de la distribución, por lo que conviene actualizar la información de los mismos previamente:

~> sudo zypper refresh

El paquete que necesitamos en esta ocasión es postgresql-server, que instalaremos con el comando zypper:

~$ sudo zypper install -y postgresql-server

En unos instantes se habrán descargado e instalado el paquete y sus dependencias, creándose el servicio postgresql o postgresql.service en openSUSE Leap 15. El servicio no queda iniciado tras su instalación, ni arranca automáticamente con el sistema, así que tendremos que hacer esto manualmente. Para iniciar por vez primera PostgreSQL usaremos systemctl:

~> sudo systemctl start postgresql

Si además queremos que PostgreSQL inicie automáticamente con cada arranque de openSUSE Leap 15, habrá que habilitar el servicio:

~> sudo systemctl enable postgresql

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

como instalar postgresql en opensuse leap 15

Pulsa la tecla Q para recuperar el control de la consola.

Versión instalada

Si necesitas saber qué versión de PostgreSQL has instalado en openSUSE Leap 15 lo comprobarás fácilmente desde consola mediante el comando pg_ctl:

~> pg_ctl -V
pg_ctl (PostgreSQL) 13.13

La versión instalada dependerá de la versión de openSUSE Leap 15 que estés usando.

Cómo instalar el cliente de PostgreSQL en openSUSE Leap 15

Si quieres instalar el cliente de PostgreSQL en openSUSE Leap 15, al ser una dependencia del servidor ya lo tendrás instalado si has seguido el procedimiento anterior. Pero si sólo quieres instalar el cliente de consola y no el servidor, para realizar conexiones remotas, entonces el paquete que necesitas es postgresql, que puedes instalar con zypper:

~> sudo zypper install -y postgresql

Con este paquete instalado podrás usar el comando psql.

Cómo conectar a PostgreSQL en openSUSE Leap 15

Para conectar al servicio PostgreSQL en openSUSE Leap 15 usamos el comando de consola psql. Inicialmente el único usuario de PostgreSQL es postgres, por lo que debemos utilizar sudo:

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

postgres=#

Puedes cerrar la sesión con el comando \q:

postgres=# \q
~>

Pero si en lugar de trabajar con el usuario postgres quieres utilizar tu usuario habitual, es necesario crear un rol (usuario de PostgreSQL) con el mismo nombre que tu usuario de openSUSE Leap 15. Para ello aún debemos usar sudo con el usuario postgres y el comando createuser:

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

En este caso hemos especificado que este nuevo rol sea administrador, para no tener que usar postgres. Aún no podemos trabajar con el nuevo rol porque es necesario que tenga asociada una base de datos con el mismo nombre que este rol. Vamos a crear la base de datos para el rol que acabamos de crear, pero esta vez podemos usar nuestro usuario de trabajo directamente:

~> createdb chacho -O chacho

Y se crea la base de datos con el mismo nombre que el rol, siendo también propiedad del rol (argumento -O).

Ya es posible trabajar con PostgreSQL utilizando nuestro usuario de trabajo en openSUSE, ya que existe un rol de PostgreSQL con el mismo nombre, que en este caso es administrador, e igualmente existe una base de datos asociada y propiedad del rol. Por lo tanto si lanzamos el cliente psql desde consola, conectará directamente:

~> psql
psql (13.13)
Digite «help» para obtener ayuda.

chacho=#

Cómo configurar PostgreSQL en openSUSE Leap 15

A la hora de configurar PostgreSQL en openSUSE Leap 15 hemos de saber dónde se encuentran los archivos de configuración ya que, a diferencia de otras aplicaciones, no se encuentran bajo la ruta del sistema /etc/. Tanto el archivo principal de configuración, postgresql.conf, como otros archivos auxiliares se encuentran en la ruta /var/lib/pgsql/data/.

Cualquier cambio en estos archivos necesitará recargar la configuración o incluso el reinicio del servicio para hacer efecto.

Cómo habilitar la autenticación mediante contraseña

El rol que hemos creado no utiliza contraseña, ya que la autenticación se basa en la identidad del usuario de openSUSE que realiza la conexión. Si queremos habilitar el uso de contraseñas, para utilizar conexiones remotas, interfaces web, etc. podemos crear una contraseña para nuestro rol mediante el comando \password en una sesión abierta con psql:

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

Si nuestro rol es administrador también podemos crear contraseñas para otros roles, añadiendo el nombre del rol al comando \password:

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

Pero no basta con crear contraseñas, además hay que habilitar su uso realizando los ajustes necesarios en el archivo pg_hba.conf:

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

Buscamos la directiva local que configura el método actual de autenticación:

...
local   all             all                                     peer
...

Y cambiamos peer por md5:

...
local   all             all                                     md5
...

Al hacer este cambio tendremos que crear una contraseña para el rol postgres, pero también tenemos la opción de dejarlo como estaba añadiendo justo antes de la línea anterior una directiva local exclusiva para postgres manteniendo la autenticación tipo peer:

...
local   all             postgres                                peer
local   all             all                                     md5
...

De esta forma todos los roles menos postgres usarán contraseña.

Guardados los cambios, recargamos la configuración del servicio:

~> sudo systemctl reload postgresql

A partir de este momento es necesario proporcionar la contraseña al intentar iniciar sesión:

~> psql
Contraseña:

Conexión remota a PostgreSQL en openSUSE Leap 15

Por defecto el servicio PostgreSQL sólo admite conexiones locales, así que si queremos permitir acceso remoto tendremos que editar postgresql.conf:

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

Buscamos la directiva listen_address:

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

Comprobamos que está desactivada mediante un carácter # inicial. Eliminaremos este carácter y cambiaremos su valor:

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

Guardamos los cambios y cerramos este archivo.

También editamos de nuevo pg_hba.conf para añadir una directiva host para configurar la autenticación remota, a continuación de las directivas host existentes:

...
# Conexiones remotas
host    all     all     all     md5
...

Esto posibilitaría el uso de contraseñas sólo para conexiones estrictamente remotas (provinientes desde otras máquinas de la red). Sin embargo, aplicaciones locales que usen conexiones cliente/servidor podrían fallar, ya que estas conexiones usan autenticación ident en lugar de md5, como podemos ver:

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

La opción es desactivar las directivas de conexión local o cambiar ident por md5:

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

Guardamos los cambios y cerramos el archivo.

Será necesario reiniciar el servicio para aplicar la nueva configuración:

~> sudo systemctl restart postgresql

Configurar el firewall de openSUSE Leap 15 para PostgreSQL

Por defecto el firewall de openSUSE Leap 15 suele estar activado, así que sería necesario añadir una regla para permitir las conexiones entrantes:

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

Habrá que recargar la nueva configuración para que haga efecto:

~> sudo firewall-cmd --reload

Probar las conexiones remotas

Desde cualquier máquina de la red local que cuente con un cliente de PostgreSQL se puede realizar una conexión al servidor openSUSE Leap 15 que estamos configurando. Por ejemplo, usando el cliente psql especificaríamos la dirección IP o dominio del servidor con el argumento -h y el rol que queremos utilizar con el argumento -U:

como instalar y configurar postgresql en opensuse leap 15

Conclusión

Ahora que sabes cómo instalar PostgreSQL en openSUSE Leap 15 ya puedes comenzar tus desarrollos o satisfacer los requerimientos de aplicaciones que se apoyan en servicios de bases de datos como este.

Si te queda alguna duda, tienes alguna sugerencia o pregunta, quieres aportar mejoras o correciones, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya puedes trabajar con este motor de bases de datos gracias a nuestra guía de instalación de PostgreSQL en openSUSE Leap 15? Si es así y te apetece agradecérnoslo, la más mínima contribución ayuda a mantener este sitio y a la creación de más tutoriales, y puedes hacerlo dejando 1 $ de propina desde PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

Deja un comentario