PostgreSQL es un sistema de gestión de bases de datos, similar a MySQL en muchos aspectos pero con algunas diferencias clave. Al igual que MySQL, comúnmente está alojado en Linux. En esta guía, le mostraremos cómo ejecutar un servidor PostgreSQL en Ubuntu 20.04 Focal Fossa, además de instalar la versión del cliente en caso de que solo necesite conectarse a una base de datos PostgreSQL externa.
En este tutorial aprenderás:
- Cómo instalar PostgreSQL Client y conectarse a un servidor
- Cómo instalar y configurar el servidor PostgreSQL
Ubuntu 20.04 PostgreSQL
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Ubuntu 20.04 instalado o Ubuntu 20.04 Focal Fossa actualizado |
Software | Servidor y cliente PostgreSQL |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Instalar cliente PostgreSQL
El Cliente PostgreSQL se puede utilizar para conectarse a una base de datos PostgreSQL externa. Utilice esta opción si ya tiene un servidor de base de datos en funcionamiento, pero necesita poder acceder de forma remota a la base de datos desde uno o más sistemas cliente.
- Para comenzar, instale el
postgresql-client
paquete abriendo una terminal e ingresando el siguiente comando:
$ sudo apt install postgresql-client
- Cuando se completa la instalación del cliente PostgreSQL, puede usar el
psql
comando para conectarse a un servidor PostgreSQL remoto. Deberá especificar el nombre de host o la dirección IP del servidor remoto (que se muestra como postgre-server
en el ejemplo a continuación) y el nombre de usuario (postgre-user
a continuación) se está autenticando con:
$ psql -h postgre-server -U postgre-user
psql (12.2 (Ubuntu 12.2-1))
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
Eso es todo para la versión del cliente. En la siguiente sección, mostraremos cómo configurar un servidor PostgreSQL, que podrá aceptar conexiones de clientes entrantes.
Instalar servidor PostgreSQL
- Para comenzar a alojar su base de datos PostgreSQL, instale
postgresql
paquete en Ubuntu con el siguiente comando:
$ sudo apt install postgresql
- Una vez que PostgreSQL Server haya terminado de instalarse, debería poder verlo escuchando conexiones entrantes en el puerto
5432
. Esta es una buena manera de confirmar que está funcionando como se esperaba.
$ ss -nlt
Servidor PostgreSQL escuchando en el puerto 5432
- De forma predeterminada, el servidor PostgreSQL se iniciará automáticamente cada vez que se inicie el sistema. Si desea cambiar este comportamiento, siempre puede modificarlo con este comando:
$ sudo systemctl disable postgresql
Para volver a habilitarlo, simplemente reemplace disable
con enable
.
- El servidor PostgreSQL solo escucha en la interfaz de loopback local
127.0.0.1
por defecto. Si planea tener uno o más clientes remotos conectados a su servidor de base de datos, deberá configurar PostgreSQL para escuchar en una interfaz de red diferente. Para realizar este cambio, abra el archivo de configuración de PostgreSQL usando nano o su editor de texto preferido:
$ sudo nano /etc/postgresql/12/main/postgresql.conf
- En este archivo, agregue la siguiente línea en algún lugar debajo de la sección "CONEXIONES Y AUTENTICACIÓN". Esto le indicará a PostgreSQL que escuche en todas las interfaces de red las conexiones entrantes.
listen_addresses = '*'
Agregue esta línea al archivo de configuración de PostgreSQL para escuchar en todas las interfaces de red
- Guarde sus cambios y salga del archivo de configuración. Luego, reinicie el servidor PostgreSQL para que los cambios surtan efecto.
$ sudo systemctl restart postgresql
- Ahora debería poder ver que PostgreSQL está escuchando en el socket
0.0.0.0:5432
. Puede confirmar esto ejecutando ss
comando de nuevo:
$ ss -nlt
Confirmando que PostgreSQL ahora está escuchando conexiones de todas las interfaces en el puerto 5432
- A continuación, debe agregar la siguiente línea a su
/etc/postgresql/12/main/pg_hba.conf
archivo de configuración, que permitirá conexiones de clientes entrantes a todas las bases de datos y usuarios. El md5
La opción especifica que los usuarios deben autenticarse con una contraseña.
host all all 0.0.0.0/0 md5
Para agregar esta línea a su archivo con un solo comando, simplemente ejecute:
$ sudo bash -c "echo host all all 0.0.0.0/0 md5 >> /etc/postgresql/12/main/pg_hba.conf"
- Por último, si tiene habilitado el firewall UFW, puede abrir el puerto de escucha del servidor PostgreSQL
5432
a cualquier tráfico TCP entrante ejecutando el siguiente comando:
$ sudo ufw allow from any to any port 5432 proto tcp
Rule added
Rule added (v6)
Servidor PostgreSQL ejecutándose en Ubuntu 20.04 Focal Fossa
Conclusión
En este artículo, aprendimos cómo alojar un servidor PostgreSQL en Ubuntu 20.04 Focal Fossa Linux. También vimos cómo realizar una configuración inicial para que nuestra base de datos pudiera aceptar conexiones entrantes de cualquier fuente y cualquier usuario. Además de esto, también vimos cómo usar el paquete PostgreSQL Client para conectarse a un servidor PostgreSQL remoto.