Curso de servidores linux
¿Qué es PostgreSQL?
📌 PostgreSQL
- Un SGBD relacional (Sistema de Gestión de Bases de Datos).
- Open Source.
- Muy potente y profesional.
- Compatible con SQL estándar.
- Soporta JSON, funciones, triggers, índices avanzados, etc.
Es ideal para:
- Backends con Node, Spring Boot, Django…
- Proyectos educativos.
- Producción real.
¿Cómo funciona PostgreSQL en Linux?
Cuando instalas PostgreSQL:
-
Se instala el servidor (motor de base de datos).
-
Se crea un usuario del sistema llamado
postgres. -
Se crea un servicio que:
- Se inicia automáticamente.
- Escucha por defecto en el puerto 5432.
PASO 1 — Actualizar el sistema
1sudo apt update
🔎 ¿Qué hace?
apt update→ Actualiza la lista de paquetes.apt upgrade→ Instala actualizaciones pendientes.
PASO 2 — Instalar PostgreSQL
1sudo apt install postgresql postgresql-contrib -y
📌 Explicación:
postgresql→ servidor principal.postgresql-contrib→ herramientas extra (extensiones útiles).
PASO 3 — Comprobar que el servicio está activo
1sudo systemctl status postgresql
Debe aparecer:
active (running)
Si no está activo:
1sudo systemctl start postgresql
Para activarlo al arranque:
1sudo systemctl enable postgresql
PASO 4 — Verificar que escucha en el puerto 5432
1sudo ss -tulpn | grep 5432
Deberías ver algo como:
LISTEN 0 128 127.0.0.1:5432
📌 Esto significa que:
- Está escuchando en localhost.
- Solo acepta conexiones locales.
PASO 5 — Entrar a PostgreSQL
PostgreSQL usa autenticación por usuario del sistema.
Cambiamos al usuario postgres:
1sudo -i -u postgres
Ahora estamos dentro como usuario postgres.
Entramos al gestor:
1psql
Si todo va bien verás:
postgres=#
PASO 6 — Comandos básicos en psql
Ver bases de datos:
1\l
Crear base de datos:
1CREATE DATABASE prueba;
Ver tablas:
1\dt
Salir:
1\q
Salir del usuario postgres:
1exit
PASO 7 — Crear usuario y asignar base
Entramos otra vez:
1sudo -i -u postgres 2psql
Crear usuario:
1CREATE USER angel WITH PASSWORD '1234';
Crear base:
1CREATE DATABASE empresa;
Dar permisos:
1GRANT ALL PRIVILEGES ON DATABASE empresa TO angel;
Salir:
1\q 2exit
PASO 8 — Permitir conexiones externas (IMPORTANTE PARA CLASE)
Por defecto PostgreSQL solo acepta localhost.
Editar configuración:
1sudo nano /etc/postgresql/*/main/postgresql.conf
Buscar:
#listen_addresses = 'localhost'
Cambiar a:
listen_addresses = '*'
Guardar.
Editar control de acceso:
1sudo nano /etc/postgresql/*/main/pg_hba.conf
Añadir al final:
host all all 0.0.0.0/0 md5
Reiniciar servicio:
1sudo systemctl restart postgresql
PASO 9 — Abrir puerto en firewall (si usas ufw)
1sudo ufw allow 5432/tcp
PASO 10 — Probar conexión remota
Desde otra máquina:
1psql -h IP_DEL_SERVIDOR -U angel -d empresa
Dónde están los archivos importantes
Configuración:
/etc/postgresql/
Datos:
/var/lib/postgresql/
Logs:
/var/log/postgresql/
Paso 11: Opcional: Configurar el firewall
Ver si el firewall está activo
Primero comprobamos el estado:
1sudo ufw status
Puede salir:
Status: inactive
Status: active
Abrir el puerto de PostgreSQL
Si PostgreSQL está en el puerto 5432:
1sudo ufw allow 5432/tcp
Ahora activamos:
1sudo ufw enable
Mejor práctica (NO abrir a todo el mundo)
Si quieres permitir solo a una IP concreta, ej 192.168.1.50:
1sudo ufw allow from 192.168.1.50 to any port 5432 proto tcp