Cómo instalar PostgreSQL en CentOS 6

En esta ocasión explicamos cómo instalar PostgreSQL en CentOS 6 paso a paso, de modo que podrás trabajar incluso con la última versión estable de este servicio de bases de datos en tu servidor o VPS CentOS.

Antes de instalar PostgreSQL en CentOS 6

Para completar esta guía de instalación de PostgreSQL en CentOS 6 deberías satisfacer al menos las siguientes condiciones:

  • Una instalación actualizada de CentOS 6.
  • Un usuario con permisos de sudo o el mismo root.
  • Conexión a Internet.

Instalar el repositorio de PostgreSQL para CentOS 6

Como la versión disponible en los repositorios de la distribución está obsoleta por completo, vamos a instalar el repositorio oficial de PostgreSQL en CentOS 6, lo que nos ofrecerá los últimos lanzamientos de las versiones más recientes. Para ello, instalaremos el siguiente paquete:

~$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Y actualizamos las listas de paquetes:

~$ sudo yum update

Ahora tendremos a nuestra disposición las versiones 9.5, 9.6, 10, 11 y 12 de PostgreSQL para CentOS 6.

Cómo instalar PostgreSQL en CentOS 6

Para instalar PostgreSQL en CentOS 6 elegiremos el paquete correspondiente a la versión que necesitemos, en este caso la última disponible, y realizaremos la instalación con yum:

~$ sudo yum install -y postgresql12-server

Recuerda que también dispones de versiones anteriores usando los paquetes postgresql94-server, postgresql95-server, postgresql96-server, postgresql10-server y postgresql11-server.

Tras la descarga e instalación de PostgreSQL y sus dependencias se crea un nuevo servicio en CentOS 6, el servicio postgresql-12. Antes de iniciar o habilitar este servicio es necesario inicializarlo, para lo que lanzaremos el siguiente comando service:

~$ sudo service postgresql-12 initdb

Para iniciar el servicio PostgreSQL, también usaremos service:

~$ sudo service postgresql-12 start

Podemos comprobar en cualquier momento el estado del servicio con el comando service postgresql-12 status:

como instalar postgresql en centos 6

Finalmente, habilitaremos el servicio PostgreSQL para que inicie automáticamente en cada arranque de CentOS 6:

~$ sudo chkconfig --level 2345 postgresql-12 on

Cómo instalar el cliente de PostgreSQL en CentOS 6

Al instalar el servidor PostgreSQL en CentOS 6 se instala automáticamente como dependencia el cliente de consola psql. Pero si únicamente te interesa instalar el cliente de PostgreSQL en CentOS 6 porque vayas a trabajar de forma remota, por ejemplo, entonces el paquete que necesitas es postgresql-12:

~$ sudo yum install -y postgresql12

Cómo conectar al servicio PostgreSQL en CentOS 6

Para poder conectar con el cliente psql al servicio que acabamos de instalar e iniciar, necesitaremos usar un rol de PostgreSQL asociado a un usuario de CentOS 6. Inicialmente el único usuario que dispone de tal rol es postgres, usuario que ha sido creado durante la instalación. Podemos realizar la conexión usando sudo y este usuario postgres:

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

postgres=#

Veremos que la conexión es posible y que el prompt del cliente psql muestra el rol utilizado (postgres, como el usuario que realiza la conexión) y que es administrador, según delata el carácter #.

Saldremos del cliente psql con el comando exit:

postgres=# exit

Quizás nos pueda interesar disponer de un rol de PostgreSQL para nuestro usuario de CentOS 6, incluso como administrador, y así no tener que usar al usuario postgres con sudo. Para esta tarea emplearemos el comando createuser:

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

El único paso que nos queda es asociar una base de datos con el mismo nombre que nuestro rol y usuario, que crearemos también a continuación, pero esta vez usaremos nuestro usuario de trabajo, ya que ahora dispone de rol administrativo, pudiendo utilizar directamente el comando createdb:

~$ createdb chacho -O chacho

Ya tenemos todo lo necesario para realizar la conexión con nuestro usuario de CentOS 6 al servicio PostgreSQL:

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

chacho=#

Creación de roles y bases de datos

Siempre que necesites un rol y una base de datos de PostgreSQL para una aplicación, puedes crearlos desde la la línea de comandos de CentOS 6.

Crearemos el rol:

~$ createuser paco

Y crearemos la base de datos asociándola al rol:

~$ createdb paco -O paco

Cómo configurar PostgreSQL en CentOS 6

Aunque el servicio ya funciona correctamente algo en lo que puedes haber reparado es que no se solicitan contraseñas de acceso a PostgreSQL, y esto es algo que en algún momento puedes necesitar activar.

Para asignar contraseña a tu propio usuario, desde el cliente psql puedes usar el comando \password:

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

Pero un administrador también puede crear contraseñas para otros roles:

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

Aunque nada de esto servirá si no activamos en la configuración de PostgreSQL el uso de contraseñas locales. Para ello, editaremos el archivo

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

Buscaremos la línea siguiente:

...
local   all             all                                     peer
...

Y sustituiremos peer por md5:

...
local   all             all                                     md5
...

Guardados los cambios y cerrado el archivo, será necesario recargar la configuración del servicio para que se aplique el nuevo ajuste:

~$ sudo service postgresql-12 reload

Ahora, cada vez que usemos el cliente psql se nos solicitará la contraseña:

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

=#

Acceso remoto a PostgreSQL en CentOS 6

Por defecto el servicio PostgreSQL sólo atiende conexiones locales en CentOS 6. Si deseamos permitir conexiones remotas tendremos que cambiar este comportamiento en el archivo principal de configuración de PostgreSQL:

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

Buscaremos la directiva listen_addresses:

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

Podemos ver que está desactivada, en esto caso en lugar de desactivarla añadiremos otra línea con el valor adecuado:

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

Guardamos los cambios y cerramos el archivo.

También tendremos que realizar un ajuste en pg_hba.conf, para permitir el acceso remoto:

Al final del archivo añadimos esta línea:

...
host    all     all     all     md5

Guardamos y cerramos el archivo, y en esta ocasión reiniciamos el servicio:

~$ sudo service postgresql-12 restart

Configurar el firewall de CentOS 6 para PostgreSQL

Echaremos un vistazo al estado del firewall:

~$ sudo iptables -L INPUT --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
2    ACCEPT     icmp --  anywhere             anywhere
3    ACCEPT     all  --  anywhere             anywhere
4    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
5    REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Tendremos que insertar la regla que necesitamos para PostgreSQL en la posición 5 o inferior, para desplazar la regla REJECT que rechaza las conexiones entrantes:

~$ sudo iptables -I INPUT 5 -m state --state NEW -p tcp --dport 5432 -j ACCEPT

Y guardaremos la nueva configuración para que sea permanente:

~$ sudo service iptables save

Probando las conexiones remotas

Desde otra máquina con un cliente de PostgreSQL, como psql, estableceremos conexión con el servidor CentOS 6, indicando la dirección del mismo y el rol con el que queremos conectar:

~$ psql -h centos6.local.lan -U chacho

instalar postgresql en centos 6

En este caso con el parámetro -h indicamos la dirección del servidor CentOS 6 y con el parámetro –U el rol con el que queremos conectar.

Conclusión

Ahora que sabes cómo instalar PostgreSQL en CentOS 6 puedes disfrutar de este potente motor de bases de datos, incluso en sus versiones recientes más estables, de modo que tu máquina CentOS 6 mantendrá incluso a día de hoy su funcionalidad.

Si tienes dudas, preguntas, alguna sugerencia de mejoras o quieres reportar algún error, puedes dejar un mensaje.

¡Apoya comoinstalar.me!

¿Ya tienes el servicio de bases de datos funcionando en tu sistema gracias a esta pequeña guía de instalación y configuración? Si es así y te apetece agradecérmelo, puedes hacerlo dejando una propina de 1 $ desde PayPal para una CocaCola:

O, si te sientes muy agradecido, puedes invitarme a un cappuccino:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

Deja un comentario

Ads Blocker Image Powered by Code Help Pro

¡Detectado un bloqueador de publicidad!

Hemos detectado que está usando extensiones para bloquear anuncios prublicitarios. Por favor, ayúdenos desactivando dicho bloqueador para este sitio web. ¡Gracias!