PostgreSQL es un sistema de gestión de base de datos relacional de objetos de código abierto y gratuito. El objetivo de este tutorial es realizar una instalación y configuración básica del servidor PostgreSQL en el servidor RHEL 8 / CentOS 8 Linux.
En este tutorial aprenderás:
- Cómo instalar el servidor de base de datos PostgreSQL en RHEL 8 / CentOS 8
- Cómo iniciar y habilitar el servidor de base de datos PostgreSQL
- Cómo acceder a la base de datos PostgreSQL desde un host local y una ubicación remota
- Cómo configurar la contraseña para el
postgres
predeterminado usuario
- Cómo habilitar PostgreSQL para escuchar en todas las redes
- Cómo proteger la conexión remota de PostgreSQL con autenticación de contraseña MD5
- Cómo abrir el puerto del cortafuegos de PostgreSQL
- Cómo establecer una conexión remota al servidor PostgreSQL usando
psql
cliente
Inicializar y acceder a la base de datos PostgreSQL en Red Hat Enterprise Linux 8
Requisitos de software y convenciones utilizadas
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | RHEL 8 / CentOS 8 |
Software | Servidor PostgreSQL 10.5-1.el8 |
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 |
Instalación local de PostgreSQL y acceso a la base de datos instrucciones paso a paso
- Instale el servidor PostreSQL. Ejecute el siguiente
dnf
comando para realizar una instalación del paquete del servidor PostreSQL:# dnf install postgresql-server
- Inicialice la base de datos PostgreSQL:
# postgresql-setup --initdb --unit postgresql
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
- Inicie PostgreSQL y, opcionalmente, habilítelo para que se inicie después de reiniciar.
# systemctl start postgresql
# systemctl enable postgresql
En este punto, el servidor PostreSQL debería estar funcionando y escuchando en el puerto localhost 5432
. Usa ss
comando para confirmar que este es el caso:
$ ss -nlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 127.0.0.1:5432 0.0.0.0:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 [::1]:5432 [::]:*
- Acceda a la base de datos de PostreSQL. Cuando instale la base de datos de PostgreSQL en su sistema RHEL 8 / CentOS 8, el instalador también creará automáticamente un nuevo usuario predeterminado
postgres
.
La contraseña predeterminada para postgres
el usuario no está configurado, por lo tanto, está vacío. Para acceder a la base de datos PostgreSQL primero ejecute su
comando como usuario root para cambiar al usuario postres. Luego, escribe psql
para iniciar sesión en la base de datos.
NOTA
Cualquier intento de acceder a la base de datos de PostgreSQL como usuario root resultará en psql: FATAL: role "root" does not exist
mensaje de error.
Ejemplo:
# su - postgres
$ psql
psql (10.5)
Type "help" for help.
postgres=#
NOTA
Para salir del shell de la base de datos PostreSQL, escriba \q
o presiona CTRL+d
combinación de teclas.
Acceso remoto a base de datos PostgreSQL y conexión segura
- Establecer contraseña para
postgres
usuario. Para acceder al servidor PostreSQL de forma remota, primero estableceremos la contraseña para postres
usuario:# su - postgres
$ psql
psql (10.5)
Type "help" for help.
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# exit
postgres-# \q
- Habilite el servidor PostgreSQL para escuchar en todas las redes disponibles. Edite el archivo de configuración principal
/var/lib/pgsql/data/postgresql.conf
:# nano /var/lib/pgsql/data/postgresql.conf
Una vez que esté listo, agregue la siguiente línea en algún lugar de CONEXIONES Y AUTENTICACIÓN sección:
listen_addresses = '*'
ADVERTENCIA
La configuración anterior permitirá que PostreSQL escuche en todas las redes disponibles. Se recomienda establecer reglas más estrictas para permitir el acceso a PostgreSQL solo desde las redes seleccionadas.
Usa ss
comando para confirmar que PostgreSQL está escuchando en 0.0.0.0
red:
$ ss -nlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:5432 0.0.0.0:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 [::]:5432 [::]:*
- Habilite la autenticación de contraseña cifrada MD5:
# echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
- Aplicar cambios de configuración de PostgreSQL:
# systemctl restart postgresql
- Abrir el puerto del cortafuegos
5432
para un tráfico entrante de PostgreSQL remoto:# firewall-cmd --zone=public --permanent --add-service=postgresql
# firewall-cmd --reload
- Conéctese al servidor de base de datos PostgreSQL desde una ubicación remota. Primero instale
psql
Herramienta de cliente PostgreSQL en su host remoto:RHEL/CENTOS
# dnf install postgresql
UBUNTU/DEBIAN
# apt install postgresql-client
Cree una conexión remota al host, por ejemplo. 192.168.1.151
como postgres
usuario y contraseña de usuario como se define en el Paso 1 anterior :
$ psql -h 192.168.1.151 -U postgres
Password for user postgres:
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.5)
Type "help" for help.
postgres=#